{
    "openapi": "3.0.0",
    "info": {
        "title": "BOMEQP API",
        "description": "BOMEQP Accreditation Management System API Documentation",
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://app.bomeqp.com",
            "description": "Production Server"
        },
        {
            "url": "http://localhost:8000/api",
            "description": "Local Development Server"
        }
    ],
    "paths": {
        "/acc/categories": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List ACC categories",
                "description": "Get categories assigned to ACC or created by ACC.",
                "operationId": "56c5693b319748ca955d3407b7488b5d",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by category name (English or Arabic)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "inactive"
                            ]
                        },
                        "example": "active"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create category",
                "description": "Create a new category.",
                "operationId": "a838a0586d3a58d9cdf6d47e9d53dfcf",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Fire Safety"
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "example": "السلامة من الحرائق",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "icon_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Category created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category created successfully"
                                        },
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/categories/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get category details",
                "description": "Get a specific category. Only accessible if assigned to ACC or created by ACC.",
                "operationId": "13b954e45e2ae8acc9177d1c7a8569e4",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Category not found or not accessible"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update category",
                "description": "Update a category. Only accessible if assigned to ACC or created by ACC.",
                "operationId": "375c238daa3fffb2f3e3e0c34480c72c",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "icon_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Category updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category updated successfully"
                                        },
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Category not found or not accessible"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "ACC"
                ],
                "summary": "Delete category",
                "description": "Delete a category. Only accessible if created by ACC.",
                "operationId": "51c909120e6b06a3a69a56b104d5b389",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Cannot delete category - not created by ACC"
                    },
                    "404": {
                        "description": "Category not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/categories/sub-categories": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List subcategories",
                "description": "Get subcategories for accessible categories.",
                "operationId": "82f871c5b63f92a4cad64b375340b06e",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by sub-category name (English or Arabic)",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "inactive"
                            ]
                        },
                        "example": "active"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subcategories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Category not accessible"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create subcategory",
                "description": "Create a new subcategory for an accessible category.",
                "operationId": "68630c6435c6cbed5a5799475d0e07f8",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "category_id",
                                    "name",
                                    "status"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Basic Fire Safety"
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Subcategory created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sub_category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Category not accessible"
                    },
                    "404": {
                        "description": "ACC or category not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/categories/sub-categories/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get subcategory details",
                "description": "Get a specific subcategory. Only accessible if the parent category is assigned to ACC or created by ACC.",
                "operationId": "0a74a9073dafaf35abf3a341efd6f369",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subcategory retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sub_category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Subcategory not found or not accessible"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update subcategory",
                "description": "Update a subcategory. Only accessible if created by ACC or belongs to assigned category.",
                "operationId": "abbb27c971f20326e8a79d591324dfaa",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Subcategory updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Subcategory updated successfully"
                                        },
                                        "sub_category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Cannot update subcategory"
                    },
                    "404": {
                        "description": "Subcategory not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "ACC"
                ],
                "summary": "Delete subcategory",
                "description": "Delete a subcategory. Only accessible if created by ACC.",
                "operationId": "c5afea6415486c7af59c244069aec700",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subcategory deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Subcategory deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Cannot delete subcategory - not created by ACC"
                    },
                    "404": {
                        "description": "Subcategory not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/certificates": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List ACC certificates",
                "description": "Get all certificates issued for courses belonging to the authenticated ACC.",
                "operationId": "bc30c9fd018850f8ae381bc1d1194961",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by trainee name, certificate number, verification code, course name, or training center name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "valid",
                                "expired",
                                "revoked"
                            ]
                        },
                        "example": "valid"
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificates retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/certificate-templates": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List certificate templates",
                "description": "Get all certificate templates for the authenticated ACC.",
                "operationId": "205872b7cede6647e57277928a2aa8e6",
                "responses": {
                    "200": {
                        "description": "Templates retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "templates": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create certificate template",
                "description": "Create a new certificate template for the authenticated ACC.",
                "operationId": "a4f4df34c7380feef356d4932a045897",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "course_ids"
                                ],
                                "properties": {
                                    "course_ids": {
                                        "description": "Array of course IDs - applies template to these specific courses. At least one course_id must be provided.",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Fire Safety Certificate Template"
                                    },
                                    "template_html": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template created successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/certificate-templates/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get certificate template details",
                "operationId": "f8e3bb9a7bb32ff18499c37f9a39a171",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Template retrieved successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Template not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update certificate template",
                "description": "Update a certificate template. Provide course_ids array to update the courses associated with this template.",
                "operationId": "c3c09a6337b0106bfe1031aceecfd247",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "course_ids": {
                                        "description": "Array of course IDs - applies template to these specific courses. At least one course_id must be provided.",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ]
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Fire Safety Certificate Template"
                                    },
                                    "template_html": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    },
                                    "config_json": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "variable": {
                                                    "type": "string"
                                                },
                                                "x": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "y": {
                                                    "type": "number",
                                                    "format": "float"
                                                },
                                                "font_family": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "fontFamily": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "font_size": {
                                                    "type": "integer",
                                                    "nullable": true
                                                },
                                                "fontSize": {
                                                    "type": "integer",
                                                    "nullable": true
                                                },
                                                "color": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "text_align": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "textAlign": {
                                                    "type": "string",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Template updated successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Course does not belong to this ACC"
                    },
                    "404": {
                        "description": "Template not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "ACC"
                ],
                "summary": "Delete certificate template",
                "description": "Delete a certificate template. Certificates using this template will remain but their template_id will be set to null.",
                "operationId": "722956e1c79ce6c0debd991cf88199ed",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Template deleted successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Template not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/certificate-templates/{id}/upload-background": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Upload background image for certificate template",
                "description": "Upload a high-resolution background image (JPG/PNG) for the certificate template.",
                "operationId": "bff9c9ee5fc5fcdbdadb437d813015b8",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "background_image": {
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Background image uploaded successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Template not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/certificate-templates/{id}/config": {
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update certificate template configuration",
                "description": "Update the template designer configuration (config_json) with placeholders, coordinates, and styling.",
                "operationId": "0c61906492398bee0883d8f19178af6c",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "config_json"
                                ],
                                "properties": {
                                    "config_json": {
                                        "description": "Array of placeholder configurations with coordinates (as percentages), styling, etc.",
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Configuration updated successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Template not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/classes": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List ACC classes",
                "description": "Get all classes from training centers that have authorization from this ACC. Only shows classes for courses that belong to the ACC.",
                "operationId": "42a8b5f44e04597ef4fa3e781616f02e",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by class name, course name, training center name, instructor name, or status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "scheduled",
                                "in_progress",
                                "completed",
                                "cancelled"
                            ]
                        },
                        "example": "in_progress"
                    },
                    {
                        "name": "training_center_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-01-01"
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-12-31"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Classes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "course_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "training_center_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "instructor_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "start_date": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2024-01-15"
                                                    },
                                                    "end_date": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2024-01-20"
                                                    },
                                                    "exam_date": {
                                                        "type": "string",
                                                        "format": "date",
                                                        "example": "2024-01-25",
                                                        "nullable": true
                                                    },
                                                    "exam_score": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "example": 85.5,
                                                        "nullable": true
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "scheduled",
                                                            "in_progress",
                                                            "completed",
                                                            "cancelled"
                                                        ],
                                                        "example": "in_progress"
                                                    },
                                                    "enrolled_count": {
                                                        "type": "integer",
                                                        "example": 15
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "enum": [
                                                            "physical",
                                                            "online"
                                                        ],
                                                        "example": "physical"
                                                    },
                                                    "course": {
                                                        "description": "Course details",
                                                        "type": "object"
                                                    },
                                                    "training_center": {
                                                        "description": "Training center details",
                                                        "type": "object"
                                                    },
                                                    "instructor": {
                                                        "description": "Instructor details",
                                                        "type": "object"
                                                    },
                                                    "trainees": {
                                                        "description": "List of trainees enrolled in this class",
                                                        "type": "array",
                                                        "items": {
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                },
                                                                "first_name": {
                                                                    "type": "string",
                                                                    "example": "John"
                                                                },
                                                                "last_name": {
                                                                    "type": "string",
                                                                    "example": "Doe"
                                                                },
                                                                "email": {
                                                                    "type": "string",
                                                                    "example": "john.doe@example.com"
                                                                },
                                                                "phone": {
                                                                    "type": "string",
                                                                    "example": "+1234567890"
                                                                },
                                                                "id_number": {
                                                                    "type": "string",
                                                                    "example": "123456789"
                                                                },
                                                                "status": {
                                                                    "type": "string",
                                                                    "example": "active"
                                                                },
                                                                "pivot": {
                                                                    "description": "Enrollment details",
                                                                    "properties": {
                                                                        "status": {
                                                                            "type": "string",
                                                                            "example": "enrolled"
                                                                        },
                                                                        "enrolled_at": {
                                                                            "type": "string",
                                                                            "format": "date-time",
                                                                            "example": "2024-01-10T10:00:00.000000Z"
                                                                        },
                                                                        "completed_at": {
                                                                            "type": "string",
                                                                            "format": "date-time",
                                                                            "example": null,
                                                                            "nullable": true
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/classes/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get class details",
                "description": "Get detailed information about a specific class. Only shows classes from authorized training centers.",
                "operationId": "5215c9c806ece1f3a82ca79b080d3022",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Class retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "course_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "training_center_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "instructor_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "start_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2024-01-15"
                                        },
                                        "end_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2024-01-20"
                                        },
                                        "exam_date": {
                                            "type": "string",
                                            "format": "date",
                                            "example": "2024-01-25",
                                            "nullable": true
                                        },
                                        "exam_score": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 85.5,
                                            "nullable": true
                                        },
                                        "status": {
                                            "type": "string",
                                            "enum": [
                                                "scheduled",
                                                "in_progress",
                                                "completed",
                                                "cancelled"
                                            ],
                                            "example": "in_progress"
                                        },
                                        "enrolled_count": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "location": {
                                            "type": "string",
                                            "enum": [
                                                "physical",
                                                "online"
                                            ],
                                            "example": "physical"
                                        },
                                        "course": {
                                            "description": "Course details",
                                            "type": "object"
                                        },
                                        "training_center": {
                                            "description": "Training center details",
                                            "type": "object"
                                        },
                                        "instructor": {
                                            "description": "Instructor details",
                                            "type": "object"
                                        },
                                        "trainees": {
                                            "description": "List of trainees enrolled in this class",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "first_name": {
                                                        "type": "string",
                                                        "example": "John"
                                                    },
                                                    "last_name": {
                                                        "type": "string",
                                                        "example": "Doe"
                                                    },
                                                    "email": {
                                                        "type": "string",
                                                        "example": "john.doe@example.com"
                                                    },
                                                    "phone": {
                                                        "type": "string",
                                                        "example": "+1234567890"
                                                    },
                                                    "id_number": {
                                                        "type": "string",
                                                        "example": "123456789"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "example": "active"
                                                    },
                                                    "pivot": {
                                                        "description": "Enrollment details",
                                                        "properties": {
                                                            "status": {
                                                                "type": "string",
                                                                "example": "enrolled"
                                                            },
                                                            "enrolled_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "example": "2024-01-10T10:00:00.000000Z"
                                                            },
                                                            "completed_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "example": null,
                                                                "nullable": true
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Class not found or not authorized"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/code-batches/pending-payments": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get pending manual payment requests",
                "description": "Get all pending manual payment requests for code purchases from this ACC.",
                "operationId": "4210be6bb9ff53c6f7531cb82787243d",
                "responses": {
                    "200": {
                        "description": "Pending requests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "batches": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/code-batches/{id}/approve-payment": {
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Approve manual payment request",
                "description": "Approve a manual payment request and complete the code purchase.",
                "operationId": "8b763deacd6d1bdae657a9fc4cb22fa6",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "payment_amount"
                                ],
                                "properties": {
                                    "payment_amount": {
                                        "description": "The payment amount to verify",
                                        "type": "number",
                                        "example": 1000
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment approved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Payment approved and codes generated successfully"
                                        },
                                        "batch": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid payment amount or batch already processed"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Not authorized to approve this batch"
                    },
                    "404": {
                        "description": "Batch not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/code-batches/{id}/reject-payment": {
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Reject manual payment request",
                "description": "Reject a manual payment request.",
                "operationId": "d24d21324e11511e25e16624af1c07c5",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "rejection_reason"
                                ],
                                "properties": {
                                    "rejection_reason": {
                                        "type": "string",
                                        "example": "Payment receipt is unclear or amount mismatch"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment rejected successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Payment request rejected"
                                        },
                                        "batch": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Not authorized to reject this batch"
                    },
                    "404": {
                        "description": "Batch not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/courses": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List ACC courses",
                "description": "Get all courses for the authenticated ACC with optional filtering.",
                "operationId": "ee4b8dc1a3e49e57d71872211ab350d1",
                "parameters": [
                    {
                        "name": "sub_category_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "level",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by course name, code, or description",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Courses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create a new course",
                "description": "Create a new course with optional pricing. If pricing is provided, it will be set for the course.",
                "operationId": "42db5ade610c0b976b24ff2561ac77fa",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "sub_category_id",
                                    "name",
                                    "code",
                                    "duration_hours",
                                    "max_capacity",
                                    "level",
                                    "status"
                                ],
                                "properties": {
                                    "sub_category_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Advanced Fire Safety"
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "example": "السلامة من الحرائق المتقدمة",
                                        "nullable": true
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "AFS-001"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Advanced fire safety training course",
                                        "nullable": true
                                    },
                                    "duration_hours": {
                                        "type": "integer",
                                        "example": 40
                                    },
                                    "max_capacity": {
                                        "type": "integer",
                                        "example": 20
                                    },
                                    "assessor_required": {
                                        "type": "boolean",
                                        "example": true,
                                        "nullable": true
                                    },
                                    "level": {
                                        "type": "string",
                                        "enum": [
                                            "beginner",
                                            "intermediate",
                                            "advanced"
                                        ],
                                        "example": "advanced"
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive",
                                            "archived"
                                        ],
                                        "example": "active"
                                    },
                                    "pricing": {
                                        "properties": {
                                            "base_price": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 500
                                            },
                                            "currency": {
                                                "type": "string",
                                                "example": "USD"
                                            }
                                        },
                                        "type": "object",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Course created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Course created successfully with pricing"
                                        },
                                        "course": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/courses/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get course details",
                "description": "Get detailed information about a specific course including pricing.",
                "operationId": "f1bf2d4ddf2e73b6b2c10335828dbdab",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Course retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "course": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Course not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update course",
                "description": "Update course details and optionally update or set pricing. If pricing is provided, it will be updated or created.",
                "operationId": "82470e71b186bf174674e36324ba2173",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "sub_category_id": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Advanced Fire Safety",
                                        "nullable": true
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "code": {
                                        "type": "string",
                                        "example": "AFS-001",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "duration_hours": {
                                        "type": "integer",
                                        "example": 40,
                                        "nullable": true
                                    },
                                    "max_capacity": {
                                        "type": "integer",
                                        "example": 25,
                                        "nullable": true
                                    },
                                    "assessor_required": {
                                        "type": "boolean",
                                        "example": true,
                                        "nullable": true
                                    },
                                    "level": {
                                        "type": "string",
                                        "enum": [
                                            "beginner",
                                            "intermediate",
                                            "advanced"
                                        ],
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive",
                                            "archived"
                                        ],
                                        "nullable": true
                                    },
                                    "pricing": {
                                        "properties": {
                                            "base_price": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 550
                                            },
                                            "currency": {
                                                "type": "string",
                                                "example": "USD"
                                            }
                                        },
                                        "type": "object",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Course updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Course updated successfully and pricing updated"
                                        },
                                        "course": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Course not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "ACC"
                ],
                "summary": "Delete course",
                "description": "Delete a course. This action cannot be undone.",
                "operationId": "abd0c6c6281f75245e4a4f1540670d53",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Course deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Course deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Course not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/courses/{id}/pricing": {
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update course pricing",
                "description": "Update the active pricing for a course. Pricing is always effective.",
                "operationId": "ddbfe75f890d17711c962dc180b47c8e",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "base_price": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 550,
                                        "nullable": true
                                    },
                                    "currency": {
                                        "type": "string",
                                        "example": "USD",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Pricing updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Pricing updated successfully"
                                        },
                                        "pricing": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Pricing not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Set course pricing",
                "description": "Set base price and commission percentages for a course. Pricing is always effective.",
                "operationId": "b8271ec3d7784402857db1a11fc14522",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "base_price",
                                    "currency"
                                ],
                                "properties": {
                                    "base_price": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 500
                                    },
                                    "currency": {
                                        "type": "string",
                                        "example": "USD"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Pricing set successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Pricing set successfully"
                                        },
                                        "pricing": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Course not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/dashboard": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get ACC dashboard data",
                "description": "Get dashboard statistics and data for the authenticated ACC admin.",
                "operationId": "97f271c35c4d46b011194c578e521706",
                "responses": {
                    "200": {
                        "description": "Dashboard data retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "pending_requests": {
                                            "description": "Total pending requests (training centers + instructors)",
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "active_training_centers": {
                                            "description": "Total number of training center authorizations (all statuses)",
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "active_instructors": {
                                            "description": "Total number of instructor authorizations (all statuses)",
                                            "type": "integer",
                                            "example": 9
                                        },
                                        "certificates_generated": {
                                            "description": "Total certificates generated",
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "revenue": {
                                            "properties": {
                                                "monthly": {
                                                    "description": "Revenue for current month",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 46700
                                                },
                                                "total": {
                                                    "description": "Total revenue",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 46700
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "mailing_address": {
                                            "description": "Mailing address information",
                                            "properties": {
                                                "street": {
                                                    "type": "string",
                                                    "example": "123 Main Street",
                                                    "nullable": true
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Cairo",
                                                    "nullable": true
                                                },
                                                "country": {
                                                    "type": "string",
                                                    "example": "Egypt",
                                                    "nullable": true
                                                },
                                                "postal_code": {
                                                    "type": "string",
                                                    "example": "12345",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "physical_address": {
                                            "description": "Physical address information",
                                            "properties": {
                                                "street": {
                                                    "type": "string",
                                                    "example": "456 Business Avenue",
                                                    "nullable": true
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Cairo",
                                                    "nullable": true
                                                },
                                                "country": {
                                                    "type": "string",
                                                    "example": "Egypt",
                                                    "nullable": true
                                                },
                                                "postal_code": {
                                                    "type": "string",
                                                    "example": "12345",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "charts": {
                                            "properties": {
                                                "revenue_over_time": {
                                                    "description": "Revenue data for last 6 months",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "certificates_over_time": {
                                                    "description": "Certificates generated count for last 6 months",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/discount-codes": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List discount codes",
                "description": "Get all discount codes created by the authenticated ACC.",
                "operationId": "9ab09a5ce4c1acabb7b4dc39ca83bd97",
                "responses": {
                    "200": {
                        "description": "Discount codes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "discount_codes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create discount code",
                "description": "Create a new discount code. Supports time-limited or quantity-based discount types.",
                "operationId": "6b0dfb85c7d1ddae006c4469beaec256",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code",
                                    "discount_type",
                                    "discount_percentage",
                                    "status"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "example": "DISCOUNT10"
                                    },
                                    "discount_type": {
                                        "type": "string",
                                        "enum": [
                                            "time_limited",
                                            "quantity_based"
                                        ],
                                        "example": "time_limited"
                                    },
                                    "discount_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "maximum": 100,
                                        "minimum": 0,
                                        "example": 10
                                    },
                                    "applicable_course_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ],
                                        "nullable": true
                                    },
                                    "start_date": {
                                        "description": "Required for time_limited type",
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-01-01",
                                        "nullable": true
                                    },
                                    "end_date": {
                                        "description": "Required for time_limited type, must be after start_date",
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-12-31",
                                        "nullable": true
                                    },
                                    "total_quantity": {
                                        "description": "Required for quantity_based type",
                                        "type": "integer",
                                        "minimum": 1,
                                        "example": 100,
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "expired",
                                            "depleted",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Discount code created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "discount_code": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/{id}/discount-codes": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get discount codes by ACC ID",
                "description": "Get all active discount codes for a specific ACC. Can be used by training centers or admins to view available discount codes for an ACC.",
                "operationId": "d54bec4d63d921e5c8e8cfa25a7fe0e0",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 6
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Discount codes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "discount_codes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/discount-codes/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get discount code details",
                "description": "Get detailed information about a specific discount code.",
                "operationId": "12a238f6f4f4f34d0288dac5098dc26e",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Discount code retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "discount_code": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Discount code not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update discount code",
                "description": "Update discount code information. Only codes created by the ACC can be updated.",
                "operationId": "47518040576e38992db90be68e9e0f7b",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "discount_type": {
                                        "type": "string",
                                        "enum": [
                                            "time_limited",
                                            "quantity_based"
                                        ],
                                        "nullable": true
                                    },
                                    "discount_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "maximum": 100,
                                        "minimum": 0,
                                        "nullable": true
                                    },
                                    "applicable_course_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "nullable": true
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true
                                    },
                                    "total_quantity": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "expired",
                                            "depleted",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Discount code updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Discount code updated successfully"
                                        },
                                        "discount_code": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Discount code not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "ACC"
                ],
                "summary": "Delete discount code",
                "description": "Delete a discount code. Only codes created by the ACC can be deleted.",
                "operationId": "6727baf11e7f5ff4a69e6964cf2adba2",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Discount code deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Discount code deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Discount code not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/discount-codes/validate": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Validate discount code",
                "description": "Validate a discount code for a specific course. Checks if code is active, valid dates, and applicable to the course.",
                "operationId": "4f566d6a0d8f37dd4faa4274b428d15b",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "code",
                                    "course_id"
                                ],
                                "properties": {
                                    "code": {
                                        "type": "string",
                                        "example": "DISCOUNT10"
                                    },
                                    "course_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Discount code is valid",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "valid": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "discount_code": {
                                            "type": "object"
                                        },
                                        "discount_percentage": {
                                            "type": "number",
                                            "example": 10
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Discount code is invalid",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "valid": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Discount code is not active"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Discount code not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/financial/transactions": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get ACC transactions",
                "description": "Get all transactions for ACC with comprehensive details including payer, payee, commission ledger, and reference information.",
                "operationId": "e9cf760e1f49c164f7b44cc141dc26c8",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by transaction ID, type, status, description, payer name (ACC/Training Center/Instructor), payee name (ACC/Training Center/Instructor), or payment gateway transaction ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "subscription",
                                "code_purchase",
                                "material_purchase",
                                "course_purchase",
                                "commission",
                                "settlement"
                            ]
                        },
                        "example": "subscription"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "completed",
                                "failed",
                                "refunded"
                            ]
                        },
                        "example": "completed"
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-01-01"
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-12-31"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transactions retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "summary": {
                                            "type": "object"
                                        },
                                        "statistics": {
                                            "description": "Detailed statistics by status and transaction type",
                                            "type": "object"
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/financial/settlements": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get ACC settlements",
                "description": "Get all monthly settlements for the ACC.",
                "operationId": "121b25a4a30b9e4d587517f8f964eb85",
                "responses": {
                    "200": {
                        "description": "Settlements retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "settlements": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/instructors/requests": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List instructor authorization requests",
                "description": "Get all instructor authorization requests for the authenticated ACC with pagination and search.",
                "operationId": "ec3035d0b03aa2772e8c05b101f420ef",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by instructor full name (first name, last name, or both), email, training center name, or request ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by request status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "approved",
                                "rejected",
                                "returned"
                            ]
                        }
                    },
                    {
                        "name": "payment_status",
                        "in": "query",
                        "description": "Filter by payment status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "paid",
                                "failed"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Requests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/instructors": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List approved authorized instructors",
                "description": "Get all approved authorized instructors for the authenticated ACC with optional filtering, search, and pagination.",
                "operationId": "34ea17919259c584c11ca36ad8d8b137",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by instructor full name (first name, last name, or both), email, phone, or training center name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Approved instructors retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "instructors": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/materials": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List ACC materials",
                "description": "Get all materials created by the authenticated ACC with optional filtering.",
                "operationId": "52724bb2f8af22ba5188f5e1bf1ca07c",
                "parameters": [
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "material_type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pdf",
                                "video",
                                "presentation",
                                "package"
                            ]
                        },
                        "example": "pdf"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Materials retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "materials": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create material",
                "description": "Create a new material (PDF, video, presentation, or package) for the marketplace.",
                "operationId": "a6cf65a018ecbe606ca1cfb8d498f34d",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "material_type",
                                    "name",
                                    "price",
                                    "file_url",
                                    "status"
                                ],
                                "properties": {
                                    "course_id": {
                                        "type": "integer",
                                        "example": 1,
                                        "nullable": true
                                    },
                                    "material_type": {
                                        "type": "string",
                                        "enum": [
                                            "pdf",
                                            "video",
                                            "presentation",
                                            "package"
                                        ],
                                        "example": "pdf"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Fire Safety Guide"
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "price": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "example": 50
                                    },
                                    "file_url": {
                                        "type": "string",
                                        "example": "https://example.com/file.pdf"
                                    },
                                    "preview_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Material created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "material": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/materials/{id}": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get material details",
                "description": "Get detailed information about a specific material.",
                "operationId": "81aa13ac897200984b650bbd662f9344",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Material retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "material": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Material not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update material",
                "description": "Update material information. Only materials created by the ACC can be updated.",
                "operationId": "b9d68aa0822351108e7924baefe708aa",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "course_id": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "material_type": {
                                        "type": "string",
                                        "enum": [
                                            "pdf",
                                            "video",
                                            "presentation",
                                            "package"
                                        ],
                                        "nullable": true
                                    },
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "price": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "nullable": true
                                    },
                                    "file_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "preview_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Material updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Material updated successfully"
                                        },
                                        "material": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Material not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "ACC"
                ],
                "summary": "Delete material",
                "description": "Delete a material. Only materials created by the ACC can be deleted.",
                "operationId": "02701f9b18ca5f0c7b54cb816b4f2716",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Material deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Material deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Material not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/profile": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get ACC profile",
                "description": "Get the authenticated ACC's profile information.",
                "operationId": "914cc2b23bdcc3e652b7d5344677385c",
                "responses": {
                    "200": {
                        "description": "Profile retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "profile": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "ABC Accreditation Body"
                                                },
                                                "legal_name": {
                                                    "type": "string",
                                                    "example": "ABC Accreditation Body LLC"
                                                },
                                                "registration_number": {
                                                    "type": "string",
                                                    "example": "REG123456"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "info@example.com"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "+1234567890"
                                                },
                                                "country": {
                                                    "type": "string",
                                                    "example": "Egypt"
                                                },
                                                "address": {
                                                    "type": "string",
                                                    "example": "123 Main St"
                                                },
                                                "mailing_address": {
                                                    "description": "Mailing address information",
                                                    "properties": {
                                                        "street": {
                                                            "type": "string",
                                                            "example": "123 Main Street",
                                                            "nullable": true
                                                        },
                                                        "city": {
                                                            "type": "string",
                                                            "example": "Cairo",
                                                            "nullable": true
                                                        },
                                                        "country": {
                                                            "type": "string",
                                                            "example": "Egypt",
                                                            "nullable": true
                                                        },
                                                        "postal_code": {
                                                            "type": "string",
                                                            "example": "12345",
                                                            "nullable": true
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "physical_address": {
                                                    "description": "Physical address information",
                                                    "properties": {
                                                        "street": {
                                                            "type": "string",
                                                            "example": "456 Business Avenue",
                                                            "nullable": true
                                                        },
                                                        "city": {
                                                            "type": "string",
                                                            "example": "Cairo",
                                                            "nullable": true
                                                        },
                                                        "country": {
                                                            "type": "string",
                                                            "example": "Egypt",
                                                            "nullable": true
                                                        },
                                                        "postal_code": {
                                                            "type": "string",
                                                            "example": "12345",
                                                            "nullable": true
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "website": {
                                                    "type": "string",
                                                    "example": "https://example.com",
                                                    "nullable": true
                                                },
                                                "logo_url": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "commission_percentage": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 10
                                                },
                                                "stripe_account_id": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "stripe_account_configured": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "documents": {
                                                    "description": "List of ACC documents",
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "document_type": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "license",
                                                                    "registration",
                                                                    "certificate",
                                                                    "other"
                                                                ],
                                                                "example": "license"
                                                            },
                                                            "document_url": {
                                                                "type": "string",
                                                                "example": "https://example.com/storage/accs/1/documents/file.pdf"
                                                            },
                                                            "uploaded_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "verified": {
                                                                "type": "boolean",
                                                                "example": false
                                                            },
                                                            "verified_by": {
                                                                "type": "object",
                                                                "nullable": true
                                                            },
                                                            "verified_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "nullable": true
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "updated_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "user": {
                                                    "type": "object",
                                                    "nullable": true
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Update ACC profile",
                "description": "Update the authenticated ACC's profile information including Stripe account ID. Use POST method for file uploads. Laravel's method spoofing with _method=PUT is supported for compatibility.",
                "operationId": "27f860173d4980fe148ec5b67909ed19",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "ABC Accreditation Body",
                                        "nullable": true
                                    },
                                    "legal_name": {
                                        "type": "string",
                                        "example": "ABC Accreditation Body LLC",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+1234567890",
                                        "nullable": true
                                    },
                                    "country": {
                                        "type": "string",
                                        "example": "Egypt",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "example": "123 Main St",
                                        "nullable": true
                                    },
                                    "mailing_street": {
                                        "type": "string",
                                        "example": "123 Main Street",
                                        "nullable": true
                                    },
                                    "mailing_city": {
                                        "type": "string",
                                        "example": "Cairo",
                                        "nullable": true
                                    },
                                    "mailing_country": {
                                        "type": "string",
                                        "example": "Egypt",
                                        "nullable": true
                                    },
                                    "mailing_postal_code": {
                                        "type": "string",
                                        "example": "12345",
                                        "nullable": true
                                    },
                                    "physical_street": {
                                        "type": "string",
                                        "example": "456 Business Avenue",
                                        "nullable": true
                                    },
                                    "physical_city": {
                                        "type": "string",
                                        "example": "Cairo",
                                        "nullable": true
                                    },
                                    "physical_country": {
                                        "type": "string",
                                        "example": "Egypt",
                                        "nullable": true
                                    },
                                    "physical_postal_code": {
                                        "type": "string",
                                        "example": "12345",
                                        "nullable": true
                                    },
                                    "website": {
                                        "type": "string",
                                        "example": "https://example.com",
                                        "nullable": true
                                    },
                                    "logo_url": {
                                        "description": "Logo URL (optional if logo file is uploaded)",
                                        "type": "string",
                                        "example": "https://example.com/logo.png",
                                        "nullable": true
                                    },
                                    "logo": {
                                        "description": "Logo file to upload (image file: jpg, jpeg, png, max 5MB)",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    },
                                    "stripe_account_id": {
                                        "description": "Stripe Connect account ID (starts with 'acct_')",
                                        "type": "string",
                                        "example": "acct_xxxxxxxxxxxxx",
                                        "nullable": true
                                    },
                                    "documents": {
                                        "description": "Array of documents to upload or update",
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "id": {
                                                    "description": "Document ID for update, omit for new document",
                                                    "type": "integer",
                                                    "nullable": true
                                                },
                                                "document_type": {
                                                    "description": "Type of document",
                                                    "type": "string",
                                                    "enum": [
                                                        "license",
                                                        "registration",
                                                        "certificate",
                                                        "other"
                                                    ]
                                                },
                                                "file": {
                                                    "description": "File to upload (multipart/form-data)",
                                                    "type": "string",
                                                    "format": "binary",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "_method": {
                                        "description": "HTTP method override (optional, for compatibility with PUT endpoints)",
                                        "type": "string",
                                        "example": "PUT",
                                        "nullable": true
                                    },
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "legal_name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "country": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "mailing_street": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "mailing_city": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "mailing_country": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "mailing_postal_code": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "physical_street": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "physical_city": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "physical_country": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "physical_postal_code": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "website": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "logo_url": {
                                        "description": "Logo URL (optional if logo file is uploaded)",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "logo": {
                                        "description": "Logo file to upload (image file: jpg, jpeg, png, max 5MB)",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    },
                                    "stripe_account_id": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "documents": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Profile updated successfully"
                                        },
                                        "profile": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/profile/verify-stripe-account": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Verify Stripe account ID",
                "description": "Verify if a Stripe Connect account ID is valid and connected to the platform.",
                "operationId": "4c24e775adfef5746bc0ffbf69fbd4ac",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "stripe_account_id"
                                ],
                                "properties": {
                                    "stripe_account_id": {
                                        "description": "Stripe Connect account ID to verify",
                                        "type": "string",
                                        "example": "acct_xxxxxxxxxxxxx"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Verification result",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "valid": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "account": {
                                            "type": "object",
                                            "nullable": true
                                        },
                                        "error": {
                                            "type": "string",
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "400": {
                        "description": "Stripe not configured"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/subscription/create-payment-intent": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create subscription payment intent",
                "description": "Create a Stripe payment intent for ACC subscription payment.",
                "operationId": "2f538d2e20778efa7e5bdca25ba80ed4",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "example": 1000
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment intent created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "client_secret": {
                                            "type": "string",
                                            "example": "pi_xxx_secret_xxx"
                                        },
                                        "payment_intent_id": {
                                            "type": "string",
                                            "example": "pi_xxx"
                                        },
                                        "amount": {
                                            "type": "number",
                                            "example": 1000
                                        },
                                        "currency": {
                                            "type": "string",
                                            "example": "USD"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Stripe not configured"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Failed to create payment intent"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/subscription/create-renewal-payment-intent": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Create subscription renewal payment intent",
                "description": "Create a Stripe payment intent for ACC subscription renewal.",
                "operationId": "29635a1f103cfa74ffb4e5d0a68be319",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "example": 1000
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment intent created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "client_secret": {
                                            "type": "string",
                                            "example": "pi_xxx_secret_xxx"
                                        },
                                        "payment_intent_id": {
                                            "type": "string",
                                            "example": "pi_xxx"
                                        },
                                        "amount": {
                                            "type": "number",
                                            "example": 1000
                                        },
                                        "currency": {
                                            "type": "string",
                                            "example": "USD"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Stripe not configured"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC or subscription not found"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Failed to create payment intent"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/subscription": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "Get ACC subscription",
                "description": "Get the current subscription for the authenticated ACC.",
                "operationId": "08a238648f4b1277548d271363a1d0ed",
                "responses": {
                    "200": {
                        "description": "Subscription retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "subscription": {
                                            "type": "object",
                                            "nullable": true
                                        },
                                        "subscription_price": {
                                            "description": "Subscription price set for this ACC",
                                            "type": "number",
                                            "format": "float",
                                            "example": 1000,
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/subscription/payment": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Process subscription payment",
                "description": "Process subscription payment after payment intent is confirmed.",
                "operationId": "a2e541531e11b2dd6d95bd59bb087c33",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "payment_method"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "example": 1000
                                    },
                                    "payment_method": {
                                        "type": "string",
                                        "enum": [
                                            "credit_card"
                                        ],
                                        "example": "credit_card"
                                    },
                                    "payment_intent_id": {
                                        "description": "Required for credit_card payment method",
                                        "type": "string",
                                        "example": "pi_xxx",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment processed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Subscription payment processed successfully"
                                        },
                                        "subscription": {
                                            "type": "object"
                                        },
                                        "transaction": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Payment verification failed or invalid request"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/subscription/renew": {
            "post": {
                "tags": [
                    "ACC"
                ],
                "summary": "Renew subscription",
                "description": "Renew ACC subscription. Payment intent must be verified before calling this endpoint.",
                "operationId": "c093673fca6ce47167901c9ff18be7fe",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "payment_method"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "example": 1000
                                    },
                                    "payment_method": {
                                        "type": "string",
                                        "enum": [
                                            "credit_card"
                                        ],
                                        "example": "credit_card"
                                    },
                                    "payment_intent_id": {
                                        "description": "Required for credit_card payment method",
                                        "type": "string",
                                        "example": "pi_xxx",
                                        "nullable": true
                                    },
                                    "auto_renew": {
                                        "type": "boolean",
                                        "example": true,
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Subscription renewed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Subscription renewed successfully"
                                        },
                                        "subscription": {
                                            "type": "object"
                                        },
                                        "transaction": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Subscription expired or payment verification failed"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC or subscription not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/training-centers/requests": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List training center authorization requests",
                "description": "Get all training center authorization requests for the authenticated ACC with pagination and search.",
                "operationId": "9c37cb423218b09dd14904d6ed67cdac",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by training center name, email, country, city, or request ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by request status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "approved",
                                "rejected",
                                "returned"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Requests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/acc/training-centers": {
            "get": {
                "tags": [
                    "ACC"
                ],
                "summary": "List approved training centers",
                "description": "Get all approved training centers for the authenticated ACC with pagination and search.",
                "operationId": "e8db63410fbe3426a9283204e7f0a9aa",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by training center name, email, country, or city",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Training centers retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/applications": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get ACC applications",
                "description": "Get all pending ACC applications for review with pagination and search.",
                "operationId": "7b2771f70270cd24058d366601a59dc0",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by ACC name, legal name, email, registration number, or country",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Applications retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "applications": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "pending": {
                                                    "type": "integer",
                                                    "example": 10
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 4
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/applications/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get ACC application details",
                "description": "Get detailed information about a specific ACC application.",
                "operationId": "072cc6cd652a0890720c1f4e6865324f",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Application retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "application": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Application not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/applications/{id}/approve": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Approve ACC application",
                "description": "Approve an ACC application (first step). Commission percentage and subscription price are required. ACC will be set to 'approved' status and needs activation before they can start working.",
                "operationId": "f35f1b909091630b09115a638e54c98d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "commission_percentage",
                                    "subscription_price"
                                ],
                                "properties": {
                                    "commission_percentage": {
                                        "description": "Commission percentage for this ACC (required, 0-100)",
                                        "type": "number",
                                        "format": "float",
                                        "maximum": 100,
                                        "minimum": 0,
                                        "example": 10
                                    },
                                    "subscription_price": {
                                        "description": "Subscription price that the ACC should pay for subscription (required)",
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0,
                                        "example": 1000
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Application approved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "ACC application approved"
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Application not found"
                    },
                    "422": {
                        "description": "Validation error - commission_percentage is required"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/applications/{id}/reject": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Reject ACC application",
                "description": "Reject an ACC application with a reason.",
                "operationId": "56efdc81c7ad35dad3fbb698d2fddbbe",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "rejection_reason"
                                ],
                                "properties": {
                                    "rejection_reason": {
                                        "type": "string",
                                        "example": "Incomplete documentation"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Application rejected successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "ACC application rejected"
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Application not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/create-space": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Create ACC space",
                "description": "Create a space for an ACC.",
                "operationId": "f03edfc652491ffb44f8d47ec4c6d2b3",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Space created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "ACC space created successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/generate-credentials": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Generate ACC credentials",
                "description": "Generate credentials for an ACC.",
                "operationId": "4358e433580088dc9668b7cae8311a23",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Credentials generated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Credentials generated successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "List all ACCs",
                "description": "Get all ACCs with their subscription information, pagination, and search.",
                "operationId": "e0269459bed71be2f499c99c961819c2",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by ACC name, legal name, email, registration number, country, or status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "active",
                                "suspended",
                                "expired",
                                "rejected"
                            ]
                        },
                        "example": "active"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ACCs retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "accs": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 50
                                                },
                                                "pending": {
                                                    "type": "integer",
                                                    "example": 5
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 30
                                                },
                                                "suspended": {
                                                    "type": "integer",
                                                    "example": 5
                                                },
                                                "expired": {
                                                    "type": "integer",
                                                    "example": 5
                                                },
                                                "rejected": {
                                                    "type": "integer",
                                                    "example": 5
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 4
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get ACC details",
                "description": "Get detailed information about a specific ACC.",
                "operationId": "a74e4a74b419fd4cc801c598b4415a6d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ACC retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Update ACC",
                "description": "Update ACC information.",
                "operationId": "f66ca6d0164bd86f724c9cbf96dbaad8",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "legal_name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "registration_number": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "country": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    },
                                    "website": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "logo_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "pending",
                                            "active",
                                            "suspended",
                                            "expired",
                                            "rejected"
                                        ],
                                        "nullable": true
                                    },
                                    "registration_fee_paid": {
                                        "type": "boolean",
                                        "nullable": true
                                    },
                                    "registration_fee_amount": {
                                        "type": "number",
                                        "nullable": true
                                    },
                                    "commission_percentage": {
                                        "type": "number",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "ACC updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "ACC updated successfully"
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/categories": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get ACC assigned categories",
                "description": "Get all categories assigned to an ACC.",
                "operationId": "67239d7cee6af843596e943cd7953dac",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "acc": {
                                            "type": "object"
                                        },
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/commission-percentage": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Set ACC commission percentage",
                "description": "Set the commission percentage for an ACC.",
                "operationId": "258214ddb852be4260ad9b10b7352e96",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "commission_percentage"
                                ],
                                "properties": {
                                    "commission_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "maximum": 100,
                                        "minimum": 0,
                                        "example": 10
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Commission percentage set successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Commission percentage set successfully"
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/transactions": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get ACC transactions",
                "description": "Get all transactions for a specific ACC.",
                "operationId": "daeb5413564a79a8ec2104c1d64967f7",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transactions retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "transactions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/assign-category": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Assign category to ACC",
                "description": "Assign a category to an ACC.",
                "operationId": "c6c21db32de47c5d53839ca7b491ffb3",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "category_id"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Category assigned successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category assigned successfully"
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Category already assigned"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC or category not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/{id}/remove-category": {
            "delete": {
                "tags": [
                    "Admin"
                ],
                "summary": "Remove category from ACC",
                "description": "Remove a category assignment from an ACC.",
                "operationId": "7661fda064df0495725984de799683ee",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "category_id"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Category removed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category removed successfully"
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC or category not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/accs/applications/{id}/activate": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Activate ACC",
                "description": "Activate an approved ACC (second step). This allows the ACC to start working. ACC must be in 'approved' status.",
                "operationId": "29972a4dc34cca322549429fc67387e2",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ACC activated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "ACC activated successfully. ACC can now start working."
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "ACC must be approved before activation"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/categories": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "List all categories",
                "description": "Get all categories with their subcategories, pagination, and search.",
                "operationId": "d5e3c61e37a39025e69b4863953f744f",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by category name (English or Arabic), description, or status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "inactive"
                            ]
                        },
                        "example": "active"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 4
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Create category",
                "description": "Create a new category.",
                "operationId": "15d3041cb0be6cfdb67e8335fee9579a",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Fire Safety"
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "example": "السلامة من الحرائق",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "icon_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Category created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/categories/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get category details",
                "description": "Get detailed information about a specific category.",
                "operationId": "26a57d12d94b4cf567088f0eba71466d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Category not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Update category",
                "description": "Update category information.",
                "operationId": "f281cc9f6874e9f342b6ecd36ed93ee0",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "icon_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Category updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category updated successfully"
                                        },
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Category not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Admin"
                ],
                "summary": "Delete category",
                "description": "Delete a category. This action cannot be undone.",
                "operationId": "b736d3e49b387462998a272453f22016",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Category deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Category deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Category not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/classes": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "List all training classes",
                "description": "Get all training classes created by training centers in the system with pagination and search. Admin can only view classes, not create, update, or delete them.",
                "operationId": "cedad04d63becb39c666eecd4243abde",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by class name, course name, training center name, instructor name (first, last, or full name), or status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "training_center_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "scheduled",
                                "in_progress",
                                "completed",
                                "cancelled"
                            ]
                        },
                        "example": "completed"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Training classes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "classes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 500
                                                },
                                                "scheduled": {
                                                    "type": "integer",
                                                    "example": 100
                                                },
                                                "in_progress": {
                                                    "type": "integer",
                                                    "example": 50
                                                },
                                                "completed": {
                                                    "type": "integer",
                                                    "example": 300
                                                },
                                                "cancelled": {
                                                    "type": "integer",
                                                    "example": 50
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 4
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/classes/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get training class details",
                "description": "Get detailed information about a specific training class created by a training center, including enrolled trainees.",
                "operationId": "22c0eae86b6df34aa732be69656485af",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Training class retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "class": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training class not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/code-batches/pending-payments": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get all pending manual payment requests",
                "description": "Get all pending manual payment requests from all ACCs with pagination and search.",
                "operationId": "3957d79ee6d8479bfebdfad52c32b851",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by batch ID, training center name/email, ACC name/email, course name, or amount",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pending requests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "batches": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 4
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/code-batches/{id}/approve-payment": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Approve manual payment request",
                "description": "Approve a manual payment request and complete the code purchase.",
                "operationId": "d162fce5216bb2fe6deb0f32aadcdd15",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "payment_amount"
                                ],
                                "properties": {
                                    "payment_amount": {
                                        "description": "The payment amount to verify",
                                        "type": "number",
                                        "example": 1000
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment approved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Payment approved and codes generated successfully"
                                        },
                                        "batch": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid payment amount or batch already processed"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Batch not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/code-batches/{id}/reject-payment": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Reject manual payment request",
                "description": "Reject a manual payment request.",
                "operationId": "cb2e68865de666ae0a2a3c7e747c4ade",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "rejection_reason"
                                ],
                                "properties": {
                                    "rejection_reason": {
                                        "type": "string",
                                        "example": "Payment receipt is unclear or amount mismatch"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment rejected successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Payment request rejected"
                                        },
                                        "batch": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Batch not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/courses": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "List all courses",
                "description": "Get all courses in the system with optional filtering. Includes current pricing information.",
                "operationId": "5325d084c0bf718268fbdf16734bb507",
                "parameters": [
                    {
                        "name": "acc_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "active",
                                "inactive"
                            ]
                        },
                        "example": "active"
                    },
                    {
                        "name": "sub_category_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "level",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "beginner",
                                "intermediate",
                                "advanced"
                            ]
                        },
                        "example": "beginner"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "fire safety"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Courses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "courses": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 150
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 120
                                                },
                                                "inactive": {
                                                    "type": "integer",
                                                    "example": 30
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/courses/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get course details",
                "description": "Get detailed information about a specific course including ACC, category, pricing, classes, and certificates.",
                "operationId": "cfc22d63641238f9d19183985c8bda10",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Course retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "course": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Course not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/dashboard": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get Group Admin dashboard data",
                "description": "Get dashboard statistics and data for the authenticated group admin user.",
                "operationId": "83dc2b14666c21d50d33ea3b4e9473c5",
                "responses": {
                    "200": {
                        "description": "Dashboard data retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "accreditation_bodies": {
                                            "description": "Total number of ACCs (all statuses)",
                                            "type": "integer",
                                            "example": 12
                                        },
                                        "training_centers": {
                                            "description": "Total number of training centers (all statuses)",
                                            "type": "integer",
                                            "example": 17
                                        },
                                        "instructors": {
                                            "description": "Total number of instructors (all statuses)",
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "trainees": {
                                            "description": "Total number of trainees (all statuses)",
                                            "type": "integer",
                                            "example": 150
                                        },
                                        "revenue": {
                                            "properties": {
                                                "monthly": {
                                                    "description": "Revenue for current month",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 0
                                                },
                                                "total": {
                                                    "description": "Total revenue",
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 91254
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "charts": {
                                            "properties": {
                                                "revenue_over_time": {
                                                    "description": "Revenue data for last 6 months",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "entity_distribution": {
                                                    "description": "Distribution of entities (ACCs, Training Centers, Instructors, Trainees)",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/financial/dashboard": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get financial dashboard",
                "description": "Get financial dashboard statistics for Group Admin.",
                "operationId": "faf39e745e97567cf2061a1664ac08dc",
                "responses": {
                    "200": {
                        "description": "Dashboard data retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "total_revenue": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 50000
                                        },
                                        "pending_settlements": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 5000
                                        },
                                        "this_month_revenue": {
                                            "type": "number",
                                            "format": "float",
                                            "example": 5000
                                        },
                                        "active_accs": {
                                            "type": "integer",
                                            "example": 10
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/financial/transactions": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get all transactions",
                "description": "Get all transactions for Group Admin with comprehensive details including payer, payee, commission ledger, and reference information. Supports pagination and search.",
                "operationId": "2cc1977c19dce629eb54d1fd1eb170ce",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by transaction ID, type, status, description, payer name (ACC/Training Center), payee name (ACC/Training Center/Instructor), payment gateway transaction ID, amount, or currency",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "subscription",
                                "code_purchase",
                                "material_purchase",
                                "course_purchase",
                                "commission",
                                "settlement"
                            ]
                        },
                        "example": "subscription"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "completed",
                                "failed",
                                "refunded"
                            ]
                        },
                        "example": "completed"
                    },
                    {
                        "name": "payer_type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "group"
                            ]
                        },
                        "example": "acc"
                    },
                    {
                        "name": "payee_type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "group",
                                "acc",
                                "instructor"
                            ]
                        },
                        "example": "group"
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-01-01"
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-12-31"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transactions retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "summary": {
                                            "type": "object"
                                        },
                                        "statistics": {
                                            "description": "Detailed statistics by status and transaction type",
                                            "type": "object"
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 100
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/financial/settlements": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get monthly settlements",
                "description": "Get all monthly settlements.",
                "operationId": "d346a04b0da0359401654a489db618e2",
                "responses": {
                    "200": {
                        "description": "Settlements retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "settlements": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/financial/settlements/{id}/request-payment": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Request payment for settlement",
                "description": "Request payment for a monthly settlement.",
                "operationId": "b688cc5d5668afd889ba8d2b238b8791",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Payment request sent successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Payment request sent successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Settlement not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/instructors": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "List all instructors",
                "description": "Get all instructors in the system with optional filtering and pagination.",
                "operationId": "5aeefcb0ef73d9532686f521c8f64a41",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "active",
                                "suspended",
                                "inactive"
                            ]
                        },
                        "example": "active"
                    },
                    {
                        "name": "training_center_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "John Doe"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Instructors retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "instructors": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 200
                                                },
                                                "pending": {
                                                    "type": "integer",
                                                    "example": 20
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 150
                                                },
                                                "suspended": {
                                                    "type": "integer",
                                                    "example": 15
                                                },
                                                "inactive": {
                                                    "type": "integer",
                                                    "example": 15
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/instructors/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get instructor details",
                "description": "Get detailed information about a specific instructor including training center, authorizations, course authorizations, classes, and certificates.",
                "operationId": "91113217eddd1e65ed3f741735120599",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Instructor retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "instructor": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Update instructor",
                "description": "Update instructor information.",
                "operationId": "efef18a14eab8901ea3463138a451a71",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "first_name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "id_number": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "cv_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "certificates_json": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        },
                                        "nullable": true
                                    },
                                    "specializations": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "nullable": true
                                    },
                                    "is_assessor": {
                                        "type": "boolean",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "pending",
                                            "active",
                                            "suspended",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Instructor updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Instructor updated successfully"
                                        },
                                        "instructor": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/instructors/authorizations/{id}/set-commission": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Set instructor commission",
                "description": "Set commission percentage for instructor authorization. Called after ACC Admin approves and sets authorization price.",
                "operationId": "5789e4d2dd5bfcaf501b943d1fb22737",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "commission_percentage"
                                ],
                                "properties": {
                                    "commission_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "maximum": 100,
                                        "minimum": 0,
                                        "example": 10
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Commission set successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Commission set successfully"
                                        },
                                        "authorization": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Authorization must be approved by ACC Admin first"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Authorization not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/instructor-authorizations/pending-commission": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get pending commission requests",
                "description": "Get instructor authorization requests that are approved by ACC Admin and waiting for commission setting by Group Admin, with pagination and search.",
                "operationId": "166f515fd64aa0d46373003c6167e3b8",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by authorization ID, instructor name (first, last, or full name), ACC name, or training center name",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pending commission requests retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "authorizations": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 5
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": 1
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/accounts": {
            "get": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Get all ACCs with Stripe Connect status",
                "description": "Get a list of all ACCs with their Stripe Connect status. Includes search and filter capabilities.",
                "operationId": "bc96d84035e67f06cef2103fcd1249d7",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by name or email",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "connected",
                                "failed",
                                "inactive",
                                "updating"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ACCs retrieved successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/accounts/{accountType}/{accountId}": {
            "get": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Get account details with Stripe Connect status",
                "description": "Get detailed information about a specific account including Stripe Connect status, requirements, and bank information.",
                "operationId": "56617ce277d2b2095288be39b25629c0",
                "parameters": [
                    {
                        "name": "accountType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "instructor"
                            ]
                        }
                    },
                    {
                        "name": "accountId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Account details retrieved successfully"
                    },
                    "404": {
                        "description": "Account not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/initiate": {
            "post": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Initiate Stripe Connect for an account",
                "description": "Create a Stripe Connect account and generate onboarding link for the specified account.",
                "operationId": "0d9915369d3a4b098b138a199b3ce8eb",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "account_type",
                                    "account_id"
                                ],
                                "properties": {
                                    "account_type": {
                                        "type": "string",
                                        "enum": [
                                            "acc",
                                            "training_center",
                                            "instructor"
                                        ],
                                        "example": "acc"
                                    },
                                    "account_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "country": {
                                        "description": "Country code (default: EG)",
                                        "type": "string",
                                        "example": "EG",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Stripe Connect initiated successfully"
                    },
                    "400": {
                        "description": "Bad request"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/status/{accountType}/{accountId}": {
            "get": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Get Stripe Connect status for an account",
                "description": "Get current Stripe Connect status, requirements, and bank information for a specific account.",
                "operationId": "6f2500e9c836787ade65ac8b89cbaae0",
                "parameters": [
                    {
                        "name": "accountType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "instructor"
                            ]
                        }
                    },
                    {
                        "name": "accountId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Status retrieved successfully"
                    },
                    "404": {
                        "description": "Account not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/retry/{accountType}/{accountId}": {
            "post": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Retry failed Stripe Connect initiation",
                "description": "Retry initiating Stripe Connect for an account that previously failed.",
                "operationId": "4fd7918bad4fae263fc9e3dad6af91ed",
                "parameters": [
                    {
                        "name": "accountType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "instructor"
                            ]
                        }
                    },
                    {
                        "name": "accountId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Retry initiated successfully"
                    },
                    "404": {
                        "description": "Account not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/disconnect/{accountType}/{accountId}": {
            "delete": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Disconnect Stripe Connect account",
                "description": "Disconnect and delete Stripe Connect account for the specified account.",
                "operationId": "55e8335598f186689eb0002046d434aa",
                "parameters": [
                    {
                        "name": "accountType",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "instructor"
                            ]
                        }
                    },
                    {
                        "name": "accountId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Disconnected successfully"
                    },
                    "404": {
                        "description": "Account not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/resend-link": {
            "post": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Resend onboarding link",
                "description": "Generate a new onboarding link and send it to the account email.",
                "operationId": "a7b92f1fd588d286bb002bcc9d4fc11f",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "account_type",
                                    "account_id"
                                ],
                                "properties": {
                                    "account_type": {
                                        "type": "string",
                                        "enum": [
                                            "acc",
                                            "training_center",
                                            "instructor"
                                        ]
                                    },
                                    "account_id": {
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Link sent successfully"
                    },
                    "400": {
                        "description": "Bad request"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/logs": {
            "get": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Get Stripe Connect logs",
                "description": "Get all Stripe Connect action logs with optional filters.",
                "operationId": "1d230b904acb14dd308064914f4b7c33",
                "parameters": [
                    {
                        "name": "account_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "instructor"
                            ]
                        }
                    },
                    {
                        "name": "account_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "action",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "initiated",
                                "completed",
                                "failed",
                                "updated",
                                "requirements_added",
                                "disconnected",
                                "retry"
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "success",
                                "failed",
                                "pending"
                            ]
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Logs retrieved successfully"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/stripe-connect/stats": {
            "get": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Get Stripe Connect statistics",
                "description": "Get overall statistics about Stripe Connect ACCs including counts and success rate.",
                "operationId": "423ea9896419a47e858903776cdf927c",
                "responses": {
                    "200": {
                        "description": "Statistics retrieved successfully"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/activity-logs": {
            "get": {
                "tags": [
                    "Admin - Stripe Connect"
                ],
                "summary": "Get admin activity logs",
                "description": "Get logs of all actions performed by admin users.",
                "operationId": "cdfd5f7de4a1a7297e1122f94561ed1c",
                "parameters": [
                    {
                        "name": "action",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 50
                        }
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Activity logs retrieved successfully"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/sub-categories": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "List all subcategories",
                "description": "Get all subcategories with optional filtering by category.",
                "operationId": "40e4f5503bb3bb980c0fbe0832e266c7",
                "parameters": [
                    {
                        "name": "category_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subcategories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sub_categories": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Create subcategory",
                "description": "Create a new subcategory.",
                "operationId": "162d0384fd3210bf9990669d62215196",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "category_id",
                                    "name",
                                    "status"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Basic Fire Safety"
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "example": "active"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Subcategory created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sub_category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/sub-categories/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get subcategory details",
                "description": "Get detailed information about a specific subcategory.",
                "operationId": "6f3e543396e72c6bd781b4eb59061882",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subcategory retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sub_category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Subcategory not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Update subcategory",
                "description": "Update subcategory information.",
                "operationId": "6dee2a0e74e40b2c76ef3a48e7213e9e",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "name_ar": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Subcategory updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Sub category updated successfully"
                                        },
                                        "sub_category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Subcategory not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Admin"
                ],
                "summary": "Delete subcategory",
                "description": "Delete a subcategory. This action cannot be undone.",
                "operationId": "ace44266bcfb713d0f7718258cf3a6cd",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Subcategory deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Sub category deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Subcategory not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/training-centers": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get all training centers",
                "description": "Get a list of all training centers with optional filters.",
                "operationId": "c8c875d9cb25367d95f0ec454c41f050",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "active",
                                "suspended",
                                "inactive"
                            ]
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Training centers retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "training_centers": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 100
                                                },
                                                "pending": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 70
                                                },
                                                "suspended": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "inactive": {
                                                    "type": "integer",
                                                    "example": 10
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/training-centers/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get training center details",
                "description": "Get detailed information about a specific training center including wallet, instructors, authorizations, certificates, and classes.",
                "operationId": "d33c467fabad1547d5a3da17ef26932b",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Training center retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "training_center": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Update training center",
                "description": "Update training center information.",
                "operationId": "2365f6fe418311c5d7fd285661879896",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "legal_name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "registration_number": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "country": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "city": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    },
                                    "website": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "logo_url": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "referred_by_group": {
                                        "type": "boolean",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "pending",
                                            "active",
                                            "suspended",
                                            "inactive"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Training center updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Training center updated successfully"
                                        },
                                        "training_center": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/training-centers/applications": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get training center applications",
                "description": "Get all pending training center applications for review.",
                "operationId": "e77cf2d59fd6a088eaa8fb4f7f5a9c78",
                "responses": {
                    "200": {
                        "description": "Applications retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "applications": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/training-centers/applications/{id}/approve": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Approve training center application",
                "description": "Approve a training center application.",
                "operationId": "2ba5f2e277efd43e3c97d5f013218432",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Application approved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Training center application approved"
                                        },
                                        "training_center": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Application not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/training-centers/applications/{id}/reject": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Reject training center application",
                "description": "Reject a training center application with a reason.",
                "operationId": "29964ffd69d508846fd1929ff63a5279",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "rejection_reason"
                                ],
                                "properties": {
                                    "rejection_reason": {
                                        "type": "string",
                                        "example": "Incomplete documentation"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Application rejected successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Training center application rejected"
                                        },
                                        "training_center": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Application not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/transfers": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get all transfers with pagination and filters",
                "description": "Get a paginated list of all transfers with optional filters for status, date range, and search.",
                "operationId": "02d3cc078f30e4055ee417614f955719",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "processing",
                                "completed",
                                "failed",
                                "retrying"
                            ]
                        }
                    },
                    {
                        "name": "user_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "acc",
                                "training_center",
                                "instructor"
                            ]
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 15
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transfers retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "statistics": {
                                            "type": "object"
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/transfers/{id}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get transfer details",
                "description": "Get detailed information about a specific transfer.",
                "operationId": "11e9e637fa6e96057aceeef1ddf31070",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transfer retrieved successfully"
                    },
                    "404": {
                        "description": "Transfer not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/transfers/reports/summary": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Get transfer summary report",
                "description": "Get summary statistics for transfers grouped by period (daily, weekly, monthly).",
                "operationId": "871d175ba594683d40d29d59c07896fc",
                "parameters": [
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": "monthly",
                            "enum": [
                                "daily",
                                "weekly",
                                "monthly"
                            ]
                        }
                    },
                    {
                        "name": "start_date",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "end_date",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Report retrieved successfully"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/admin/transfers/{id}/retry": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Retry a failed transfer",
                "description": "Manually retry a failed transfer. This will attempt to process the transfer again via Stripe.",
                "operationId": "3112bf0b39118acfbdfd3bda15e560ed",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transfer retry initiated successfully"
                    },
                    "404": {
                        "description": "Transfer not found"
                    },
                    "400": {
                        "description": "Transfer cannot be retried"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/auth/register": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Register a new user",
                "description": "Register a new user (Training Center or ACC Admin). Both Training Center and ACC registration require comprehensive company and contact information. Both require group admin approval.",
                "operationId": "c47a1b563e5e8bc3c7b962f893981e84",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "name",
                                    "email",
                                    "password",
                                    "password_confirmation",
                                    "role"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "User's full name",
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "email": {
                                        "description": "User's email address (must be unique)",
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "password": {
                                        "description": "Password (minimum 8 characters)",
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    },
                                    "password_confirmation": {
                                        "description": "Password confirmation",
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    },
                                    "role": {
                                        "description": "User role",
                                        "type": "string",
                                        "enum": [
                                            "training_center_admin",
                                            "acc_admin"
                                        ],
                                        "example": "training_center_admin"
                                    },
                                    "company_name": {
                                        "description": "Company name (required for training_center_admin)",
                                        "type": "string",
                                        "example": "ABC Training Center"
                                    },
                                    "company_email": {
                                        "description": "Company email address (required for training_center_admin)",
                                        "type": "string",
                                        "format": "email",
                                        "example": "info@abctraining.com"
                                    },
                                    "training_provider_type": {
                                        "description": "Type of training provider (required for training_center_admin)",
                                        "type": "string",
                                        "enum": [
                                            "Training Center",
                                            "Institute",
                                            "University"
                                        ],
                                        "example": "Training Center"
                                    },
                                    "facility_floorplan": {
                                        "description": "Facility floorplan file (PDF, JPG, PNG, max 10MB, optional, only for training_center_admin)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "interested_fields": {
                                        "description": "Interested fields (optional, only for training_center_admin)",
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "enum": [
                                                "QHSE",
                                                "Food Safety",
                                                "Management"
                                            ]
                                        },
                                        "example": [
                                            "QHSE",
                                            "Food Safety"
                                        ]
                                    },
                                    "has_secondary_contact": {
                                        "description": "Whether to add secondary contact (optional for training_center_admin, always required for acc_admin)",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "legal_name": {
                                        "description": "Accreditation legal name (required for acc_admin)",
                                        "type": "string",
                                        "example": "ABC Accreditation Body"
                                    },
                                    "acc_email": {
                                        "description": "Accreditation body email address (required for acc_admin)",
                                        "type": "string",
                                        "format": "email",
                                        "example": "info@abcaccreditation.com"
                                    },
                                    "primary_contact_passport": {
                                        "description": "Primary contact passport copy (PDF, JPG, PNG, max 10MB, required for acc_admin)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "secondary_contact_passport": {
                                        "description": "Secondary contact passport copy (PDF, JPG, PNG, max 10MB, required for acc_admin)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "telephone_number": {
                                        "description": "Telephone number (required for both roles)",
                                        "type": "string",
                                        "example": "+1234567890"
                                    },
                                    "website": {
                                        "description": "Website (optional for both roles)",
                                        "type": "string",
                                        "example": "https://www.example.com"
                                    },
                                    "fax": {
                                        "description": "Fax number (optional for both roles)",
                                        "type": "string",
                                        "example": "+1234567891"
                                    },
                                    "address": {
                                        "description": "Physical address (required for both roles)",
                                        "type": "string",
                                        "example": "123 Main Street"
                                    },
                                    "city": {
                                        "description": "City (required for both roles)",
                                        "type": "string",
                                        "example": "New York"
                                    },
                                    "country": {
                                        "description": "Country (required for both roles)",
                                        "type": "string",
                                        "example": "USA"
                                    },
                                    "postal_code": {
                                        "description": "Postal code (required for both roles)",
                                        "type": "string",
                                        "example": "10001"
                                    },
                                    "mailing_same_as_physical": {
                                        "description": "Whether mailing address is same as physical address (for both roles)",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "mailing_address": {
                                        "description": "Mailing address (required if mailing_same_as_physical is false)",
                                        "type": "string",
                                        "example": "123 Main Street"
                                    },
                                    "mailing_city": {
                                        "description": "Mailing city (required if mailing_same_as_physical is false)",
                                        "type": "string",
                                        "example": "New York"
                                    },
                                    "mailing_country": {
                                        "description": "Mailing country (required if mailing_same_as_physical is false)",
                                        "type": "string",
                                        "example": "USA"
                                    },
                                    "mailing_postal_code": {
                                        "description": "Mailing postal code (required if mailing_same_as_physical is false)",
                                        "type": "string",
                                        "example": "10001"
                                    },
                                    "primary_contact_title": {
                                        "description": "Primary contact title (required for both roles)",
                                        "type": "string",
                                        "enum": [
                                            "Mr.",
                                            "Mrs.",
                                            "Eng.",
                                            "Prof."
                                        ],
                                        "example": "Mr."
                                    },
                                    "primary_contact_first_name": {
                                        "description": "Primary contact first name (required for both roles)",
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "primary_contact_last_name": {
                                        "description": "Primary contact last name (required for both roles)",
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "primary_contact_email": {
                                        "description": "Primary contact email (required for both roles)",
                                        "type": "string",
                                        "format": "email",
                                        "example": "john.doe@example.com"
                                    },
                                    "primary_contact_country": {
                                        "description": "Primary contact country (required for both roles)",
                                        "type": "string",
                                        "example": "USA"
                                    },
                                    "primary_contact_mobile": {
                                        "description": "Primary contact mobile number (required for both roles)",
                                        "type": "string",
                                        "example": "+1234567890"
                                    },
                                    "secondary_contact_title": {
                                        "description": "Secondary contact title (required if has_secondary_contact is true for training_center_admin, always required for acc_admin)",
                                        "type": "string",
                                        "enum": [
                                            "Mr.",
                                            "Mrs.",
                                            "Eng.",
                                            "Prof."
                                        ],
                                        "example": "Mrs."
                                    },
                                    "secondary_contact_first_name": {
                                        "description": "Secondary contact first name (required if has_secondary_contact is true for training_center_admin, always required for acc_admin)",
                                        "type": "string",
                                        "example": "Jane"
                                    },
                                    "secondary_contact_last_name": {
                                        "description": "Secondary contact last name (required if has_secondary_contact is true for training_center_admin, always required for acc_admin)",
                                        "type": "string",
                                        "example": "Smith"
                                    },
                                    "secondary_contact_email": {
                                        "description": "Secondary contact email (required if has_secondary_contact is true for training_center_admin, always required for acc_admin)",
                                        "type": "string",
                                        "format": "email",
                                        "example": "jane.smith@example.com"
                                    },
                                    "secondary_contact_country": {
                                        "description": "Secondary contact country (required if has_secondary_contact is true for training_center_admin, always required for acc_admin)",
                                        "type": "string",
                                        "example": "USA"
                                    },
                                    "secondary_contact_mobile": {
                                        "description": "Secondary contact mobile number (required if has_secondary_contact is true for training_center_admin, always required for acc_admin)",
                                        "type": "string",
                                        "example": "+1234567891"
                                    },
                                    "company_gov_registry_number": {
                                        "description": "Company government registry number (required for both roles)",
                                        "type": "string",
                                        "example": "REG123456"
                                    },
                                    "company_registration_certificate": {
                                        "description": "Company registration certificate file (PDF, JPG, PNG, max 10MB, required for both roles)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "how_did_you_hear_about_us": {
                                        "description": "How did you hear about us (optional for both roles)",
                                        "type": "string",
                                        "example": "Google Search"
                                    },
                                    "agreed_to_receive_communications": {
                                        "description": "Agreement to receive communications (required for both roles, must be true)",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "agreed_to_terms_and_conditions": {
                                        "description": "Agreement to terms and conditions (required for both roles, must be true)",
                                        "type": "boolean",
                                        "example": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Registration successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Registration successful"
                                        },
                                        "user": {
                                            "type": "object"
                                        },
                                        "token": {
                                            "type": "string",
                                            "example": "1|xxxxxxxxxxxxx"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/auth/login": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "User login",
                "description": "Authenticate user with email and password. Returns authentication token.",
                "operationId": "1ff9c65c5cd1a8e0786e318eed856972",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "password123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Login successful",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Login successful"
                                        },
                                        "user": {
                                            "type": "object"
                                        },
                                        "token": {
                                            "type": "string",
                                            "example": "1|xxxxxxxxxxxxx"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Invalid credentials"
                    }
                }
            }
        },
        "/auth/logout": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "User logout",
                "description": "Logout the authenticated user and invalidate the current token.",
                "operationId": "eae6a8251a6469bbabe454860f64cf37",
                "responses": {
                    "200": {
                        "description": "Logged out successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Logged out successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/auth/profile": {
            "get": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Get user profile",
                "description": "Get the authenticated user's profile information. The name field is synced with the Training Center or ACC profile based on the user's role.",
                "operationId": "fbc33ac6296afc79593f63a82776f198",
                "responses": {
                    "200": {
                        "description": "User profile",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "user": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Update user profile",
                "description": "Update the authenticated user's profile information.",
                "operationId": "ad51dd8088f0445b07a18ae49420aa75",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Profile updated successfully"
                                        },
                                        "user": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/auth/change-password": {
            "put": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Change password",
                "description": "Change the authenticated user's password.",
                "operationId": "38a5ef921e38e6b8428d4fb1a929fc35",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "current_password",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "current_password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "oldpassword123"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "newpassword123"
                                    },
                                    "password_confirmation": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "newpassword123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password changed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Password changed successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "422": {
                        "description": "Validation error or incorrect current password"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/auth/forgot-password": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Forgot password",
                "description": "Request a password reset link to be sent to the user's email.",
                "operationId": "944cf5d0cda5f1161b68bd971b0c7a4f",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password reset link sent",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Password reset link sent to your email"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User not found"
                    },
                    "500": {
                        "description": "Email sending failed"
                    }
                }
            }
        },
        "/auth/reset-password": {
            "post": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Reset password",
                "description": "Reset user password using the token from the password reset email.",
                "operationId": "884566ee5edcbc2a651df1e90ae0d762",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "token",
                                    "email",
                                    "password",
                                    "password_confirmation"
                                ],
                                "properties": {
                                    "token": {
                                        "type": "string",
                                        "example": "reset_token_here"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "newpassword123"
                                    },
                                    "password_confirmation": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "newpassword123"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Password reset successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Password reset successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid or expired token"
                    },
                    "404": {
                        "description": "User not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "/auth/verify-email/{token}": {
            "get": {
                "tags": [
                    "Authentication"
                ],
                "summary": "Verify email",
                "description": "Verify user email address using the verification token.",
                "operationId": "8b40081c9a5bdf35277f4c27e2ce25c0",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "verification_token_here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Email verified successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Email verified successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid or expired token"
                    }
                }
            }
        },
        "/certificates/verify/{code}": {
            "get": {
                "tags": [
                    "Certificates"
                ],
                "summary": "Verify certificate",
                "description": "Verify a certificate using its verification code. This is a public endpoint.",
                "operationId": "7d2da0829ca5b34cb901bc5d1c3b7604",
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "VERIFY-ABC123"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificate verified successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "certificate": {
                                            "properties": {
                                                "certificate_number": {
                                                    "type": "string",
                                                    "example": "CERT-2024-001"
                                                },
                                                "trainee_name": {
                                                    "type": "string",
                                                    "example": "John Doe"
                                                },
                                                "course": {
                                                    "type": "string",
                                                    "example": "Fire Safety Training"
                                                },
                                                "issue_date": {
                                                    "type": "string",
                                                    "format": "date",
                                                    "example": "2024-01-15"
                                                },
                                                "expiry_date": {
                                                    "type": "string",
                                                    "format": "date",
                                                    "example": "2026-01-15"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "valid"
                                                },
                                                "training_center": {
                                                    "type": "string",
                                                    "example": "ABC Training Center"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Certificate revoked or expired"
                    },
                    "404": {
                        "description": "Certificate not found"
                    }
                }
            }
        },
        "/cities": {
            "get": {
                "tags": [
                    "Countries & Cities"
                ],
                "summary": "Get list of cities",
                "description": "Get a list of cities, optionally filtered by country code.",
                "operationId": "f9b5b75b1ec48ba0f411efe841decdd2",
                "parameters": [
                    {
                        "name": "country",
                        "in": "query",
                        "description": "Filter cities by country code (ISO 3166-1 alpha-2)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "EG"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cities retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "cities": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Cairo"
                                                    },
                                                    "country_code": {
                                                        "type": "string",
                                                        "example": "EG"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/countries": {
            "get": {
                "tags": [
                    "Countries & Cities"
                ],
                "summary": "Get list of countries",
                "description": "Get a list of all countries with their ISO codes and names.",
                "operationId": "ec668f5327eed30be7c8bc454c22d2f7",
                "responses": {
                    "200": {
                        "description": "Countries retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "countries": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "code": {
                                                        "type": "string",
                                                        "example": "EG"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Egypt"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/storage/instructors/cv/{filename}": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Get instructor CV file",
                "description": "Serve an instructor CV file. This is a public endpoint.",
                "operationId": "c26f000913aad9311eec2d1b8f87d745",
                "parameters": [
                    {
                        "name": "filename",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "cv_1234567890.pdf"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File retrieved successfully"
                    },
                    "404": {
                        "description": "File not found"
                    }
                }
            }
        },
        "/storage/instructors/certificates/{filename}": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Get instructor certificate file",
                "description": "Serve an instructor certificate file. This is a public endpoint.",
                "operationId": "19c7d750be7547922badd5c92f382f8a",
                "parameters": [
                    {
                        "name": "filename",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "cert_1234567890.pdf"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File retrieved successfully"
                    },
                    "404": {
                        "description": "File not found"
                    }
                }
            }
        },
        "/storage/instructors/photo/{filename}": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Get instructor profile image",
                "description": "Serve an instructor profile image file. This is a public endpoint.",
                "operationId": "9d4df19a5a7ce2d24ae21d7e7ec9e425",
                "parameters": [
                    {
                        "name": "filename",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "photo_1234567890.jpg"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File retrieved successfully"
                    },
                    "404": {
                        "description": "File not found"
                    }
                }
            }
        },
        "/storage/instructors/passport/{filename}": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Get instructor passport copy",
                "description": "Serve an instructor passport copy file. This is a public endpoint.",
                "operationId": "9ec2c7f1c16f7d7957bfb793852549e8",
                "parameters": [
                    {
                        "name": "filename",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "passport_1234567890.pdf"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File retrieved successfully"
                    },
                    "404": {
                        "description": "File not found"
                    }
                }
            }
        },
        "/storage/{path}": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Get file from storage",
                "description": "Serve a file from public storage. Only authorized paths are allowed.",
                "operationId": "7354f0850214b9e14ef80e9b7d723ea3",
                "parameters": [
                    {
                        "name": "path",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "authorization/document.pdf"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "File retrieved successfully"
                    },
                    "400": {
                        "description": "Invalid path"
                    },
                    "403": {
                        "description": "Access denied"
                    },
                    "404": {
                        "description": "File not found"
                    }
                }
            }
        },
        "/instructor/classes": {
            "get": {
                "tags": [
                    "Instructor"
                ],
                "summary": "List instructor classes",
                "description": "Get all classes assigned to the authenticated instructor.",
                "operationId": "9b1f03244224acc63e40a93932510e34",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "scheduled",
                                "in_progress",
                                "completed",
                                "cancelled"
                            ]
                        },
                        "example": "scheduled"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Classes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "classes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/instructor/classes/{id}": {
            "get": {
                "tags": [
                    "Instructor"
                ],
                "summary": "Get class details",
                "description": "Get detailed information about a specific class assigned to the instructor.",
                "operationId": "732c16d672cafef8b0108c90dbc753b8",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Class retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "class": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Class not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/instructor/classes/{id}/mark-complete": {
            "post": {
                "tags": [
                    "Instructor"
                ],
                "summary": "Mark class as complete",
                "description": "Mark a class as completed with completion rate and notes. Class end date must have passed.",
                "operationId": "427589276236cf2b56e00a61388a1999",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "completion_rate_percentage"
                                ],
                                "properties": {
                                    "completion_rate_percentage": {
                                        "type": "number",
                                        "format": "float",
                                        "maximum": 100,
                                        "minimum": 0,
                                        "example": 95
                                    },
                                    "notes": {
                                        "type": "string",
                                        "example": "All trainees completed successfully",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Class marked as completed",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Class marked as completed"
                                        },
                                        "completion": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Class end date has not been reached"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Class not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/instructor/dashboard": {
            "get": {
                "tags": [
                    "Instructor"
                ],
                "summary": "Get instructor dashboard data",
                "description": "Returns all data needed for the instructor dashboard including profile, class statistics, recent classes, earnings, training centers, ACCs, and notifications.",
                "operationId": "00f005c06d12ff15c227d00987d9206b",
                "responses": {
                    "200": {
                        "description": "Dashboard data retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "profile": {
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "is_assessor": {
                                                    "description": "Whether the instructor is an assessor",
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "statistics": {
                                            "type": "object"
                                        },
                                        "recent_classes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "earnings": {
                                            "type": "object"
                                        },
                                        "training_centers": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "accs": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "unread_notifications_count": {
                                            "type": "integer",
                                            "example": 3
                                        },
                                        "charts": {
                                            "properties": {
                                                "earnings_over_time": {
                                                    "description": "Earnings data for last 6 months",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "classes_status_distribution": {
                                                    "description": "Distribution of classes by status",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/instructor/earnings": {
            "get": {
                "tags": [
                    "Instructor"
                ],
                "summary": "Get instructor earnings",
                "description": "Get earnings and transactions for the authenticated instructor with optional filtering by month/year.",
                "operationId": "d6647b27e509a42f64f973f6b75b9222",
                "parameters": [
                    {
                        "name": "month",
                        "in": "query",
                        "description": "Filter by month (YYYY-MM)",
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "pattern": "^\\d{4}-\\d{2}$"
                        },
                        "example": "2024-01"
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "description": "Filter by year",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 2024
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Earnings retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "earnings": {
                                            "properties": {
                                                "total": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 5000
                                                },
                                                "this_month": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 500
                                                },
                                                "pending": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 200
                                                },
                                                "paid": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 4800
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "transactions": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/instructor/profile": {
            "get": {
                "tags": [
                    "Instructor"
                ],
                "summary": "Get instructor profile",
                "description": "Get the authenticated instructor's profile information including personal details and training center.",
                "operationId": "88291ada049a605aea4fcd07fda5b2a9",
                "responses": {
                    "200": {
                        "description": "Profile retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "profile": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Instructor"
                ],
                "summary": "Update instructor profile",
                "description": "Update the authenticated instructor's profile information. Use POST method for file uploads. Laravel's method spoofing with _method=PUT is supported for compatibility.",
                "operationId": "81d3077520c26e36af2f37d13493dcce",
                "requestBody": {
                    "required": false,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "description": "Note: email and id_number cannot be changed by instructor for security reasons. is_assessor can only be changed by training center.",
                                "properties": {
                                    "_method": {
                                        "description": "HTTP method override (optional, for compatibility with PUT endpoints)",
                                        "type": "string",
                                        "example": "PUT",
                                        "nullable": true
                                    },
                                    "first_name": {
                                        "description": "First name of the instructor",
                                        "type": "string",
                                        "example": "John",
                                        "nullable": true
                                    },
                                    "last_name": {
                                        "description": "Last name of the instructor",
                                        "type": "string",
                                        "example": "Doe",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "description": "Phone number",
                                        "type": "string",
                                        "example": "+1234567890",
                                        "nullable": true
                                    },
                                    "date_of_birth": {
                                        "description": "Date of birth",
                                        "type": "string",
                                        "format": "date",
                                        "example": "1990-01-15",
                                        "nullable": true
                                    },
                                    "country": {
                                        "description": "Country",
                                        "type": "string",
                                        "example": "Egypt",
                                        "nullable": true
                                    },
                                    "city": {
                                        "description": "City",
                                        "type": "string",
                                        "example": "Cairo",
                                        "nullable": true
                                    },
                                    "photo": {
                                        "description": "Profile image file (jpg, jpeg, png, max 5MB)",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    },
                                    "cv": {
                                        "description": "CV file (PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    },
                                    "passport": {
                                        "description": "Passport copy (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    },
                                    "certificates": {
                                        "description": "Array of certificate objects. Each certificate can have a certificate_file (PDF) uploaded, or you can provide certificates as JSON with name, issue_date, and optionally url.",
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "example": "Certificate Name"
                                                },
                                                "issue_date": {
                                                    "type": "string",
                                                    "format": "date",
                                                    "example": "2024-01-01"
                                                },
                                                "certificate_file": {
                                                    "description": "Certificate PDF file (max 10MB) - upload file instead of providing URL",
                                                    "type": "string",
                                                    "format": "binary",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "nullable": true
                                    },
                                    "certificate_files": {
                                        "description": "Alternative: Array of certificate PDF files. Files will be matched with certificates array by index.",
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "binary"
                                        },
                                        "nullable": true
                                    },
                                    "specializations": {
                                        "description": "Array of specializations",
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Profile updated successfully"
                                        },
                                        "profile": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/nationalities": {
            "get": {
                "tags": [
                    "Nationalities"
                ],
                "summary": "Get all nationalities",
                "description": "Get a list of all active nationalities ordered by sort order and name. This endpoint is public and can be used anywhere nationality selection is needed.",
                "operationId": "192fa042a1af268fddc674a9573f3d5a",
                "responses": {
                    "200": {
                        "description": "Nationalities retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "nationalities": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Egyptian"
                                                    },
                                                    "code": {
                                                        "type": "string",
                                                        "example": "EGY",
                                                        "nullable": true
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/notifications": {
            "get": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Get all notifications",
                "description": "Get all notifications for the authenticated user with optional filtering and pagination.",
                "operationId": "d6da1277c6d4fdf15d7a33b1452704ba",
                "parameters": [
                    {
                        "name": "is_read",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        },
                        "example": false
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "info"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Notifications retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "notifications": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object"
                                        },
                                        "unread_count": {
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/notifications/unread-count": {
            "get": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Get unread notifications count",
                "description": "Get the count of unread notifications for the authenticated user.",
                "operationId": "585b9338d1f787df775fe8bdae26665c",
                "responses": {
                    "200": {
                        "description": "Unread count retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "unread_count": {
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/notifications/{id}": {
            "get": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Get notification",
                "description": "Get a specific notification by ID.",
                "operationId": "b2b4fac5ead7bc9e964a23d5e06373de",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Notification retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "notification": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Notification not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Delete notification",
                "description": "Delete a specific notification.",
                "operationId": "6b385681ae2e20d76f7d9fb0c36fbb53",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Notification deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Notification deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Notification not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/notifications/{id}/read": {
            "put": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Mark notification as read",
                "description": "Mark a specific notification as read.",
                "operationId": "392380d2c48a769e5290b2e29e062db1",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Notification marked as read",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Notification marked as read"
                                        },
                                        "notification": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Notification not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/notifications/{id}/unread": {
            "put": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Mark notification as unread",
                "description": "Mark a specific notification as unread.",
                "operationId": "40da4afafe0cea6128f2c4706e462111",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Notification marked as unread",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Notification marked as unread"
                                        },
                                        "notification": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Notification not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/notifications/mark-all-read": {
            "post": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Mark all notifications as read",
                "description": "Mark all notifications for the authenticated user as read.",
                "operationId": "7b2325bc4e9e55f81f5c52b660ca7f84",
                "responses": {
                    "200": {
                        "description": "All notifications marked as read",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "5 notification(s) marked as read"
                                        },
                                        "updated_count": {
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/notifications/read": {
            "delete": {
                "tags": [
                    "Notifications"
                ],
                "summary": "Delete all read notifications",
                "description": "Delete all read notifications for the authenticated user.",
                "operationId": "ef1a2bb0931b825b0cb9264359406ee1",
                "responses": {
                    "200": {
                        "description": "Read notifications deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "10 notification(s) deleted"
                                        },
                                        "deleted_count": {
                                            "type": "integer",
                                            "example": 10
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/stripe/config": {
            "get": {
                "tags": [
                    "Stripe"
                ],
                "summary": "Get Stripe configuration",
                "description": "Get Stripe publishable key and configuration status.",
                "operationId": "36540c8355bb7b98d704aef4d7653a4f",
                "responses": {
                    "200": {
                        "description": "Configuration retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "publishable_key": {
                                            "type": "string",
                                            "example": "pk_test_xxx"
                                        },
                                        "is_configured": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Stripe is not configured"
                    }
                }
            }
        },
        "/stripe/create-payment-intent": {
            "post": {
                "tags": [
                    "Stripe"
                ],
                "summary": "Create payment intent",
                "description": "Create a Stripe payment intent for a transaction.",
                "operationId": "10a62f35578ec1f29beab0e6d04e7103",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "currency",
                                    "transaction_type",
                                    "payer_type",
                                    "payer_id",
                                    "payee_type",
                                    "payee_id"
                                ],
                                "properties": {
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0.01000000000000000020816681711721685132943093776702880859375,
                                        "example": 100
                                    },
                                    "currency": {
                                        "type": "string",
                                        "maxLength": 3,
                                        "minLength": 3,
                                        "example": "USD"
                                    },
                                    "transaction_type": {
                                        "type": "string",
                                        "example": "subscription"
                                    },
                                    "payer_type": {
                                        "type": "string",
                                        "example": "acc"
                                    },
                                    "payer_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "payee_type": {
                                        "type": "string",
                                        "example": "group"
                                    },
                                    "payee_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "description": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "reference_id": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "reference_type": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment intent created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "client_secret": {
                                            "type": "string",
                                            "example": "pi_xxx_secret_xxx"
                                        },
                                        "payment_intent_id": {
                                            "type": "string",
                                            "example": "pi_xxx"
                                        },
                                        "amount": {
                                            "type": "number",
                                            "example": 100
                                        },
                                        "currency": {
                                            "type": "string",
                                            "example": "USD"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Failed to create payment intent"
                    }
                }
            }
        },
        "/stripe/confirm-payment": {
            "post": {
                "tags": [
                    "Stripe"
                ],
                "summary": "Confirm payment",
                "description": "Confirm a Stripe payment intent. Can be called manually or via webhook.",
                "operationId": "7e9f38647752581ec4bdd9615826cd64",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "payment_intent_id"
                                ],
                                "properties": {
                                    "payment_intent_id": {
                                        "type": "string",
                                        "example": "pi_xxx"
                                    },
                                    "transaction_id": {
                                        "type": "integer",
                                        "example": 1,
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment confirmed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "succeeded"
                                        },
                                        "transaction": {
                                            "type": "object",
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Failed to confirm payment"
                    }
                }
            }
        },
        "/stripe/webhook": {
            "post": {
                "tags": [
                    "Stripe"
                ],
                "summary": "Handle Stripe webhook",
                "description": "Handle Stripe webhook events for payment status updates. This endpoint is called by Stripe.",
                "operationId": "8f6f07e069ab9157810db79db6c8afba",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "description": "Stripe webhook event payload"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Webhook processed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "received": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid signature or event data"
                    },
                    "500": {
                        "description": "Webhook processing failed"
                    }
                }
            }
        },
        "/stripe/refund": {
            "post": {
                "tags": [
                    "Stripe"
                ],
                "summary": "Refund payment",
                "description": "Process a refund for a Stripe payment. Can refund full or partial amount.",
                "operationId": "8ff8b18a9b35597bcbbec0d75748b01b",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "payment_intent_id"
                                ],
                                "properties": {
                                    "payment_intent_id": {
                                        "type": "string",
                                        "example": "pi_xxx"
                                    },
                                    "amount": {
                                        "description": "Partial refund amount. If not provided, full refund will be processed.",
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0.01000000000000000020816681711721685132943093776702880859375,
                                        "example": 50,
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Refund processed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "refund_id": {
                                            "type": "string",
                                            "example": "re_xxx"
                                        },
                                        "amount": {
                                            "type": "number",
                                            "example": 50
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "succeeded"
                                        },
                                        "transaction": {
                                            "type": "object",
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Failed to process refund"
                    }
                }
            }
        },
        "/training-center/accs": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List active ACCs",
                "description": "Get all active ACCs available for authorization requests with pagination and search.",
                "operationId": "f9c85460f5dfc493ae57cb8084764c22",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by ACC name, legal name, email, or country",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ACCs retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/accs/{id}/request-authorization": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Request ACC authorization",
                "description": "Request authorization from an ACC. Upload required documents.",
                "operationId": "2ed269174dc1e3fd5201536bf0984776",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "documents"
                                ],
                                "properties": {
                                    "documents": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "file": {
                                                    "description": "Document file (PDF, DOC, DOCX, JPG, PNG, max 10MB)",
                                                    "type": "string",
                                                    "format": "binary"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "license",
                                                        "certificate",
                                                        "registration",
                                                        "other"
                                                    ],
                                                    "example": "license"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Authorization request created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Authorization request submitted successfully"
                                        },
                                        "authorization": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Authorization request already exists"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center or ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/accs/authorizations": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get authorization requests",
                "description": "Get all authorization requests for the authenticated training center.",
                "operationId": "91820e3524472c35df52f99aaeb3fe35",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "approved",
                                "rejected"
                            ]
                        },
                        "example": "pending"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Authorizations retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "authorizations": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/authorizations": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Create authorization request",
                "description": "Create a new authorization request for an ACC. This endpoint accepts ACC ID in the request body along with documents.",
                "operationId": "dbe21ebb57d626c72a2cb57df037a172",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "acc_id",
                                    "documents"
                                ],
                                "properties": {
                                    "acc_id": {
                                        "description": "ACC ID to request authorization from",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "documents": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "file": {
                                                    "description": "Document file (PDF, DOC, DOCX, JPG, PNG, max 10MB)",
                                                    "type": "string",
                                                    "format": "binary"
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "enum": [
                                                        "license",
                                                        "certificate",
                                                        "registration",
                                                        "other"
                                                    ],
                                                    "example": "license"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Authorization request created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Authorization request submitted successfully"
                                        },
                                        "authorization": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Authorization request already exists"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center or ACC not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/certificates": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List certificates",
                "description": "Get all certificates generated by the training center with optional filtering.",
                "operationId": "33b197a4677dea60b33468a99a9f6a72",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "valid",
                                "expired",
                                "revoked"
                            ]
                        },
                        "example": "valid"
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by trainee name, certificate number, or course name",
                        "schema": {
                            "type": "string"
                        },
                        "example": "John Doe"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificates retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "certificates": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Issue a new certificate",
                "description": "Generate and issue a new certificate. Select ACC and Course, then enter student name. The system will automatically select the appropriate template and generate the certificate.",
                "operationId": "517fcfa1203695f7645c94ec4ac3a659",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "acc_id",
                                    "course_id",
                                    "trainee_name",
                                    "issue_date"
                                ],
                                "properties": {
                                    "acc_id": {
                                        "description": "ID of the authorized ACC",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "course_id": {
                                        "description": "ID of the course from the selected ACC",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "training_class_id": {
                                        "description": "ID of the training class",
                                        "type": "integer",
                                        "example": 1,
                                        "nullable": true
                                    },
                                    "instructor_id": {
                                        "type": "integer",
                                        "example": 1,
                                        "nullable": true
                                    },
                                    "trainee_name": {
                                        "description": "Student name",
                                        "type": "string",
                                        "example": "John Doe"
                                    },
                                    "trainee_id_number": {
                                        "type": "string",
                                        "example": "ID123456",
                                        "nullable": true
                                    },
                                    "issue_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-01-15"
                                    },
                                    "expiry_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2026-01-15",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Certificate issued successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "ACC not authorized or course not available"
                    },
                    "404": {
                        "description": "ACC, Course, or Template not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/certificates/{id}": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get certificate details",
                "description": "Get detailed information about a specific certificate.",
                "operationId": "a3aa044e3408d990ff833cc06cd80cc9",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificate retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "certificate": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Certificate not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/certificates/{id}/validity": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Check certificate validity",
                "description": "Check if a certificate is valid. Returns certificate status and validity information.",
                "operationId": "9eb2d4795d6da1fe49d6a6e53655f5fe",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 99
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificate validity checked successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "valid": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "valid"
                                        },
                                        "certificate": {
                                            "type": "object"
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Certificate is valid"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Certificate does not belong to this training center"
                    },
                    "404": {
                        "description": "Certificate not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/certificates/{id}/download": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Download certificate file",
                "description": "Download the certificate PDF/image file.",
                "operationId": "577887ae8ba1f0f3e7ffde16c0a48082",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 99
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Certificate file downloaded successfully"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Certificate does not belong to this training center"
                    },
                    "404": {
                        "description": "Certificate or file not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/certificates/accs": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get authorized ACCs for certificate generation",
                "description": "Get all authorized ACCs that the training center can generate certificates for.",
                "operationId": "05b9a3f574c36ca1ae277b613f0397f0",
                "responses": {
                    "200": {
                        "description": "ACCs retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "accs": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/classes": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List training classes",
                "description": "Get all training classes for the authenticated training center with pagination and search.",
                "operationId": "3e74609de9e5344d47939d6c9ce38fad",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by class name, course name, instructor name, or status",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by class status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "scheduled",
                                "in_progress",
                                "completed",
                                "cancelled"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Classes retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Create training class",
                "description": "Create a new training class. The course must belong to an ACC that has authorized the training center.",
                "operationId": "b53a020ec18d455a2ff2971afe418342",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "course_id",
                                    "name",
                                    "instructor_id",
                                    "start_date",
                                    "end_date",
                                    "location"
                                ],
                                "properties": {
                                    "course_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "name": {
                                        "description": "Class name",
                                        "type": "string",
                                        "example": "Class A - January 2024"
                                    },
                                    "instructor_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-01-15"
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-01-20"
                                    },
                                    "exam_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-01-25",
                                        "nullable": true
                                    },
                                    "exam_score": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 85.5,
                                        "nullable": true
                                    },
                                    "schedule_json": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        },
                                        "nullable": true
                                    },
                                    "location": {
                                        "type": "string",
                                        "enum": [
                                            "physical",
                                            "online"
                                        ],
                                        "example": "physical"
                                    },
                                    "location_details": {
                                        "type": "string",
                                        "example": "Room 101",
                                        "nullable": true
                                    },
                                    "trainee_ids": {
                                        "description": "Array of trainee IDs to enroll in this training class",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Class created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "class": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Course not available - ACC authorization required, Instructor not authorized to teach this course, or Training center has not paid instructor authorization payment to ACC"
                    },
                    "404": {
                        "description": "Training center not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/classes/{id}": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get class details",
                "description": "Get detailed information about a specific training class.",
                "operationId": "fc8c7c0ac8bc5c4b685027a8a2285dbd",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Class retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "class": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Class not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Update training class",
                "description": "Update training class information.",
                "operationId": "3915870c7b27408b0b3b4a2ee6ac60a9",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "course_id": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "instructor_id": {
                                        "type": "integer",
                                        "nullable": true
                                    },
                                    "start_date": {
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true
                                    },
                                    "end_date": {
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true
                                    },
                                    "exam_date": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2024-01-25",
                                        "nullable": true
                                    },
                                    "exam_score": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 85.5,
                                        "nullable": true
                                    },
                                    "schedule_json": {
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        },
                                        "nullable": true
                                    },
                                    "location": {
                                        "type": "string",
                                        "enum": [
                                            "physical",
                                            "online"
                                        ],
                                        "nullable": true
                                    },
                                    "location_details": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "scheduled",
                                            "in_progress",
                                            "completed",
                                            "cancelled"
                                        ],
                                        "nullable": true
                                    },
                                    "trainee_ids": {
                                        "description": "Array of trainee IDs to sync with this training class (replaces existing enrollments)",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Class updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Class updated successfully"
                                        },
                                        "class": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Instructor not authorized to teach this course from the ACC, or Training center has not paid instructor authorization payment to ACC"
                    },
                    "404": {
                        "description": "Class not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Delete training class",
                "description": "Delete a training class. This action cannot be undone.",
                "operationId": "ac508735580da4aa524e316c9af36df2",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Class deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Class deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Class not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/classes/{id}/complete": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Mark class as completed",
                "description": "Mark a training class as completed and create a completion record.",
                "operationId": "ea917325ab4a84d2183acd50dcadea87",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Class marked as completed",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Class marked as completed"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Class not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/codes/create-payment-intent": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Create payment intent for code purchase",
                "description": "Create a Stripe payment intent for purchasing certificate codes. Calculates pricing including discounts. Also returns information about available payment methods including manual payment option.",
                "operationId": "77509cc969dc172af4e8190d2985ead3",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "acc_id",
                                    "course_id",
                                    "quantity"
                                ],
                                "properties": {
                                    "acc_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "course_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "example": 10
                                    },
                                    "discount_code": {
                                        "type": "string",
                                        "example": "DISCOUNT10",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Payment intent created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "client_secret": {
                                            "type": "string",
                                            "example": "pi_xxx_secret_xxx"
                                        },
                                        "payment_intent_id": {
                                            "type": "string",
                                            "example": "pi_xxx"
                                        },
                                        "amount": {
                                            "type": "number",
                                            "example": 1000
                                        },
                                        "currency": {
                                            "type": "string",
                                            "example": "USD"
                                        },
                                        "total_amount": {
                                            "type": "string",
                                            "example": "1000.00"
                                        },
                                        "discount_amount": {
                                            "type": "string",
                                            "example": "100.00",
                                            "nullable": true
                                        },
                                        "final_amount": {
                                            "type": "string",
                                            "example": "900.00"
                                        },
                                        "unit_price": {
                                            "type": "string",
                                            "example": "100.00"
                                        },
                                        "quantity": {
                                            "type": "integer",
                                            "example": 10
                                        },
                                        "payment_methods_available": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            },
                                            "example": [
                                                "credit_card",
                                                "manual_payment"
                                            ]
                                        },
                                        "manual_payment_info": {
                                            "description": "Information about manual payment option",
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Invalid request or pricing not found"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center, ACC, or course not found"
                    },
                    "422": {
                        "description": "Validation error"
                    },
                    "500": {
                        "description": "Failed to create payment intent"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/codes/purchase": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Purchase certificate codes",
                "description": "Purchase certificate codes after payment intent is confirmed. Generates codes and creates batch. Use multipart/form-data when uploading payment_receipt for manual payment. DO NOT manually set Content-Type header when using FormData - let the browser set it automatically.",
                "operationId": "f79fe7e03c93edabd2b8a1d64a222999",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "acc_id",
                                    "course_id",
                                    "quantity",
                                    "payment_method"
                                ],
                                "properties": {
                                    "acc_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "course_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "example": 10
                                    },
                                    "discount_code": {
                                        "type": "string",
                                        "example": "DISCOUNT10",
                                        "nullable": true
                                    },
                                    "payment_method": {
                                        "type": "string",
                                        "enum": [
                                            "credit_card",
                                            "manual_payment"
                                        ],
                                        "example": "credit_card"
                                    },
                                    "payment_intent_id": {
                                        "description": "Required if payment_method is credit_card",
                                        "type": "string",
                                        "example": "pi_xxx",
                                        "nullable": true
                                    },
                                    "payment_method_id": {
                                        "type": "string",
                                        "example": "pm_xxx",
                                        "nullable": true
                                    },
                                    "payment_receipt": {
                                        "description": "Required if payment_method is manual_payment. File must be PDF, JPG, JPEG, or PNG, max 10MB. IMPORTANT: When using FormData, do NOT manually set Content-Type header - let browser set it automatically.",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    },
                                    "payment_amount": {
                                        "description": "Required if payment_method is manual_payment",
                                        "type": "number",
                                        "example": 1000,
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "application/json": {
                            "schema": {
                                "required": [
                                    "acc_id",
                                    "course_id",
                                    "quantity",
                                    "payment_method"
                                ],
                                "properties": {
                                    "acc_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "course_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "quantity": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "example": 10
                                    },
                                    "discount_code": {
                                        "type": "string",
                                        "example": "DISCOUNT10",
                                        "nullable": true
                                    },
                                    "payment_method": {
                                        "description": "Note: manual_payment requires multipart/form-data for file upload",
                                        "type": "string",
                                        "enum": [
                                            "credit_card"
                                        ],
                                        "example": "credit_card"
                                    },
                                    "payment_intent_id": {
                                        "description": "Required if payment_method is credit_card",
                                        "type": "string",
                                        "example": "pi_xxx"
                                    },
                                    "payment_method_id": {
                                        "type": "string",
                                        "example": "pm_xxx",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Codes purchased successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Codes purchased successfully"
                                        },
                                        "batch": {
                                            "type": "object"
                                        },
                                        "codes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "transaction": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Payment verification failed or invalid request"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "ACC not active or authorization required"
                    },
                    "404": {
                        "description": "Training center, ACC, course, or pricing not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/codes/inventory": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get certificate codes inventory",
                "description": "Get all certificate codes owned by the training center with optional filtering.",
                "operationId": "a5adb9e57350cc2a39b05f275f870d27",
                "parameters": [
                    {
                        "name": "acc_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "available",
                                "used",
                                "expired"
                            ]
                        },
                        "example": "available"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Inventory retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "codes": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/codes/batches": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get code purchase batches",
                "description": "Get all code purchase batches for the training center.",
                "operationId": "cdaa940a5ec4df483a5d729b9009f214",
                "parameters": [
                    {
                        "name": "acc_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Batches retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "batches": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/courses": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List available courses",
                "description": "Get all courses from ACCs that have approved this training center. Only shows active courses.",
                "operationId": "8869ae745cea6461138d11ba4339eefc",
                "parameters": [
                    {
                        "name": "acc_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "sub_category_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "level",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "beginner",
                                "intermediate",
                                "advanced"
                            ]
                        },
                        "example": "beginner"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "fire safety"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Courses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "courses": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "ACC not authorized"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/courses/{id}": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get course details",
                "description": "Get detailed information about a specific course from an authorized ACC.",
                "operationId": "9b9184705a6c3575e277be16f2d02b3f",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Course retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "course": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "403": {
                        "description": "Course not available - ACC authorization required"
                    },
                    "404": {
                        "description": "Course not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/dashboard": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get Training Center dashboard data",
                "description": "Get dashboard statistics and data for the authenticated training center admin.",
                "operationId": "52a683da367bc3f653cca788fa94c3cb",
                "responses": {
                    "200": {
                        "description": "Dashboard data retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "authorized_accreditations": {
                                            "description": "Total number of ACC authorizations (all statuses)",
                                            "type": "integer",
                                            "example": 3
                                        },
                                        "classes": {
                                            "description": "Total number of classes (all statuses)",
                                            "type": "integer",
                                            "example": 4
                                        },
                                        "instructors": {
                                            "description": "Total number of instructors (all statuses)",
                                            "type": "integer",
                                            "example": 10
                                        },
                                        "trainees": {
                                            "description": "Total number of trainees (all statuses)",
                                            "type": "integer",
                                            "example": 25
                                        },
                                        "certificates": {
                                            "description": "Total number of certificates (all statuses)",
                                            "type": "integer",
                                            "example": 0
                                        },
                                        "training_center_state": {
                                            "properties": {
                                                "status": {
                                                    "description": "Training center status",
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "registration_date": {
                                                    "description": "Registration date",
                                                    "type": "string",
                                                    "format": "date",
                                                    "example": "2024-01-15",
                                                    "nullable": true
                                                },
                                                "accreditation_status": {
                                                    "description": "Accreditation status",
                                                    "type": "string",
                                                    "example": "Verified"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "charts": {
                                            "properties": {
                                                "classes_over_time": {
                                                    "description": "Classes count for last 6 months",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "classes_status_distribution": {
                                                    "description": "Distribution of classes by status",
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/instructors": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List instructors",
                "description": "Get all instructors for the authenticated training center with pagination and search.",
                "operationId": "9205b9fba913b6425b12dea289135005",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by instructor name, email, phone, or ID number",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Instructors retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "description": "Total number of instructors",
                                                    "type": "integer",
                                                    "example": 50
                                                },
                                                "pending": {
                                                    "description": "Number of pending instructors",
                                                    "type": "integer",
                                                    "example": 5
                                                },
                                                "active": {
                                                    "description": "Number of active instructors",
                                                    "type": "integer",
                                                    "example": 40
                                                },
                                                "suspended": {
                                                    "description": "Number of suspended instructors",
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "inactive": {
                                                    "description": "Number of inactive instructors",
                                                    "type": "integer",
                                                    "example": 2
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Create instructor",
                "description": "Create a new instructor. An email with login credentials will be sent to the instructor.",
                "operationId": "eda7b84f20a0c3b149b9e0857fbb145c",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "first_name",
                                    "last_name",
                                    "email",
                                    "date_of_birth",
                                    "phone",
                                    "languages",
                                    "is_assessor",
                                    "cv",
                                    "passport"
                                ],
                                "properties": {
                                    "first_name": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "date_of_birth": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "1990-01-15"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+1234567890"
                                    },
                                    "languages": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "example": [
                                            "English",
                                            "Arabic"
                                        ]
                                    },
                                    "is_assessor": {
                                        "description": "true for Assessor, false for Instructor",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "cv": {
                                        "description": "CV + supporting certificates (PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "passport": {
                                        "description": "Passport copy (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Instructor created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Instructor created successfully"
                                        },
                                        "instructor": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/instructors/{id}": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get instructor details",
                "description": "Get detailed information about a specific instructor.",
                "operationId": "295ccdaa9e9c290e59d204271ac0150d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Instructor retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "instructor": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Update instructor",
                "description": "Update instructor information. Use POST method for file uploads. Laravel's method spoofing with _method=PUT is supported for compatibility.",
                "operationId": "ba1416f7931ce903dad77829670d9a9e",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "_method": {
                                        "description": "HTTP method override (optional, for compatibility with PUT endpoints)",
                                        "type": "string",
                                        "example": "PUT",
                                        "nullable": true
                                    },
                                    "first_name": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "date_of_birth": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "1990-01-15"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+1234567890"
                                    },
                                    "languages": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        },
                                        "example": [
                                            "English",
                                            "Arabic"
                                        ]
                                    },
                                    "is_assessor": {
                                        "description": "true for Assessor, false for Instructor",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "cv": {
                                        "description": "CV + supporting certificates (PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "passport": {
                                        "description": "Passport copy (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Instructor updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Instructor updated successfully"
                                        },
                                        "instructor": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/accs/{accId}/courses": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get courses by ACC and sub-category",
                "description": "Get all active courses for a specific ACC, optionally filtered by sub-category.",
                "operationId": "a73cb7d473f709d03184cda33dc793e7",
                "parameters": [
                    {
                        "name": "accId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "sub_category_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Courses retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "courses": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/accs/{accId}/categories": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get categories for an ACC",
                "description": "Get all categories assigned to a specific ACC.",
                "operationId": "66833fb1205af464efa32a7161475975",
                "parameters": [
                    {
                        "name": "accId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "categories": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "acc": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "ACC not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/accs/{categoryId}/sub-categories": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get sub-categories for a category",
                "description": "Get all sub-categories that belong to a specific category.",
                "operationId": "4dc81816f242e776589897ff856f2994",
                "parameters": [
                    {
                        "name": "categoryId",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Sub-categories retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sub_categories": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "category": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Category not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/instructors/{id}/request-authorization": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Request instructor authorization",
                "description": "Request authorization for an instructor to teach courses from an ACC. You can either select a sub-category (all courses in that sub-category) or select specific courses.",
                "operationId": "edd5c34d34b2fe7c7ff9375a84d05a91",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "acc_id"
                                ],
                                "properties": {
                                    "acc_id": {
                                        "description": "ACC ID to request authorization from",
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "sub_category_id": {
                                        "description": "Sub-category ID - authorizes instructor for all courses in this sub-category",
                                        "type": "integer",
                                        "example": 5,
                                        "nullable": true
                                    },
                                    "course_ids": {
                                        "description": "Array of specific course IDs to authorize",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3
                                        ],
                                        "nullable": true
                                    },
                                    "documents_json": {
                                        "description": "Optional documents array",
                                        "type": "array",
                                        "items": {
                                            "type": "object"
                                        },
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Authorization request submitted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Authorization request submitted successfully"
                                        },
                                        "authorization": {
                                            "type": "object"
                                        },
                                        "courses_count": {
                                            "description": "Number of courses included in the authorization",
                                            "type": "integer",
                                            "example": 5
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Instructor or ACC not found"
                    },
                    "422": {
                        "description": "Validation error - either sub_category_id or course_ids must be provided, but not both"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/instructors/authorizations": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List instructor authorization requests",
                "description": "Get all instructor authorization requests for the authenticated training center with pagination and search.",
                "operationId": "259238a9ceff3a4d6b5d34f378ec37b4",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by instructor full name (first name, last name, or both), ACC name, or authorization ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filter by authorization status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "approved",
                                "rejected",
                                "returned"
                            ]
                        }
                    },
                    {
                        "name": "payment_status",
                        "in": "query",
                        "description": "Filter by payment status",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "paid",
                                "failed"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Number of items per page (default: 15)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Page number (default: 1)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Authorizations retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "current_page": {
                                            "type": "integer"
                                        },
                                        "per_page": {
                                            "type": "integer"
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "last_page": {
                                            "type": "integer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/marketplace/materials": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List marketplace materials",
                "description": "Get all active materials available in the marketplace with optional filtering.",
                "operationId": "7c8080575b82ed86e3bf0c3385268216",
                "parameters": [
                    {
                        "name": "acc_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "course_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    },
                    {
                        "name": "material_type",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "book"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "fire safety"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Materials retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "materials": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/marketplace/materials/{id}": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get material details",
                "description": "Get detailed information about a specific marketplace material.",
                "operationId": "a21888e607ebec09f8ddd8de3e5490e5",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Material retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "material": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Material not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/marketplace/purchase": {
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Purchase marketplace item",
                "description": "Purchase a material, course, or package from the marketplace.",
                "operationId": "d0893bfadbfde7d2e05f369422ff2723",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "purchase_type",
                                    "item_id",
                                    "acc_id",
                                    "payment_method"
                                ],
                                "properties": {
                                    "purchase_type": {
                                        "type": "string",
                                        "enum": [
                                            "material",
                                            "course",
                                            "package"
                                        ],
                                        "example": "material"
                                    },
                                    "item_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "acc_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "payment_method": {
                                        "type": "string",
                                        "enum": [
                                            "credit_card"
                                        ],
                                        "example": "credit_card"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Purchase completed successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Purchase completed successfully"
                                        },
                                        "purchase": {
                                            "type": "object"
                                        },
                                        "transaction": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Purchase type not implemented or invalid request"
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center or item not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/marketplace/library": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get purchased items library",
                "description": "Get all items purchased by the training center from the marketplace.",
                "operationId": "618e980b2be55e7d6029f6dbf39f4530",
                "parameters": [
                    {
                        "name": "purchase_type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "material",
                                "course",
                                "package"
                            ]
                        },
                        "example": "material"
                    },
                    {
                        "name": "acc_id",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Library items retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "library": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/profile": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get training center profile",
                "description": "Get the authenticated training center admin's profile information including all training center data.",
                "operationId": "70ab0243bbec1d6fd51b3e5e9b94fedf",
                "responses": {
                    "200": {
                        "description": "Profile retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "profile": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Update training center profile",
                "description": "Update the authenticated training center's profile information. Use POST method for file uploads. Laravel's method spoofing with _method=PUT is supported for compatibility. All fields are optional.",
                "operationId": "13ef3ddef8e26fc859f52e97e7a7dfc1",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Training Center Name",
                                        "nullable": true
                                    },
                                    "legal_name": {
                                        "type": "string",
                                        "example": "Training Center Legal Name Inc.",
                                        "nullable": true
                                    },
                                    "registration_number": {
                                        "type": "string",
                                        "example": "REG123456",
                                        "nullable": true
                                    },
                                    "country": {
                                        "type": "string",
                                        "example": "Egypt",
                                        "nullable": true
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": "Cairo",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "example": "123 Main Street",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+201234567890",
                                        "nullable": true
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "info@trainingcenter.com",
                                        "nullable": true
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://www.trainingcenter.com",
                                        "nullable": true
                                    },
                                    "logo_url": {
                                        "description": "Logo URL (optional if logo file is uploaded)",
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://example.com/logo.png",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "_method": {
                                        "description": "HTTP method override (optional, for compatibility with PUT endpoints)",
                                        "type": "string",
                                        "example": "PUT",
                                        "nullable": true
                                    },
                                    "name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "legal_name": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "registration_number": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "country": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "city": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "address": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "phone": {
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "nullable": true
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "url",
                                        "nullable": true
                                    },
                                    "logo_url": {
                                        "description": "Logo URL (optional if logo file is uploaded)",
                                        "type": "string",
                                        "nullable": true
                                    },
                                    "logo": {
                                        "description": "Logo file to upload (image file: jpg, jpeg, png, max 5MB)",
                                        "type": "string",
                                        "format": "binary",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Profile updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Profile updated successfully"
                                        },
                                        "profile": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/trainees": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "List trainees",
                "description": "Get all trainees for the authenticated training center with optional filtering and pagination.",
                "operationId": "5b956ec553dd3199fd1815137f12886c",
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        },
                        "example": "active"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by trainee name, email, phone, or ID number",
                        "schema": {
                            "type": "string"
                        },
                        "example": "John"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Trainees retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "trainees": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "pagination": {
                                            "properties": {
                                                "current_page": {
                                                    "type": "integer"
                                                },
                                                "last_page": {
                                                    "type": "integer"
                                                },
                                                "per_page": {
                                                    "type": "integer"
                                                },
                                                "total": {
                                                    "type": "integer"
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "statistics": {
                                            "properties": {
                                                "total": {
                                                    "description": "Total number of trainees",
                                                    "type": "integer",
                                                    "example": 100
                                                },
                                                "active": {
                                                    "description": "Number of active trainees",
                                                    "type": "integer",
                                                    "example": 80
                                                },
                                                "inactive": {
                                                    "description": "Number of inactive trainees",
                                                    "type": "integer",
                                                    "example": 15
                                                },
                                                "suspended": {
                                                    "description": "Number of suspended trainees",
                                                    "type": "integer",
                                                    "example": 5
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Create trainee",
                "description": "Create a new trainee with ID and card images. Can optionally enroll in classes.",
                "operationId": "5bae18fc22686c1554de62015b57185c",
                "requestBody": {
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "required": [
                                    "first_name",
                                    "last_name",
                                    "email",
                                    "phone",
                                    "nationality",
                                    "id_number",
                                    "id_image",
                                    "card_image"
                                ],
                                "properties": {
                                    "first_name": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+1234567890"
                                    },
                                    "nationality": {
                                        "type": "string",
                                        "example": "US"
                                    },
                                    "id_number": {
                                        "type": "string",
                                        "example": "ID123456"
                                    },
                                    "id_image": {
                                        "description": "Passport/National ID copy (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "card_image": {
                                        "description": "Pic Upload (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "enrolled_classes": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ],
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive",
                                            "suspended"
                                        ],
                                        "example": "active",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Trainee created successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Trainee created successfully"
                                        },
                                        "trainee": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/trainees/{id}": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get trainee details",
                "description": "Get detailed information about a specific trainee.",
                "operationId": "f81796678b17a9361bf675b3b1de3b18",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Trainee retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "trainee": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Trainee not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Update trainee",
                "description": "Update trainee information. Use POST method for file uploads. Can update personal details, images, and enrolled classes. Laravel method spoofing with _method=PUT is supported for compatibility.",
                "operationId": "edaf9496da5a6592ecc09cff09b5e8eb",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "_method": {
                                        "description": "HTTP method override (optional, for compatibility with PUT endpoints)",
                                        "type": "string",
                                        "example": "PUT",
                                        "nullable": true
                                    },
                                    "first_name": {
                                        "type": "string",
                                        "example": "John"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Doe"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "john@example.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+1234567890"
                                    },
                                    "nationality": {
                                        "type": "string",
                                        "example": "US"
                                    },
                                    "id_number": {
                                        "type": "string",
                                        "example": "ID123456"
                                    },
                                    "id_image": {
                                        "description": "Passport/National ID copy (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "card_image": {
                                        "description": "Pic Upload (JPEG, PNG, PDF, max 10MB)",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "enrolled_classes": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "nullable": true
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "active",
                                            "inactive",
                                            "suspended"
                                        ],
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Trainee updated successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Trainee updated successfully"
                                        },
                                        "trainee": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Trainee not found"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Delete trainee",
                "description": "Delete a trainee and associated files. This action cannot be undone.",
                "operationId": "1e45a4683712b0fd001c8032a14f15d9",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Trainee deleted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Trainee deleted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Trainee not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        },
        "/training-center/financial/transactions": {
            "get": {
                "tags": [
                    "Training Center"
                ],
                "summary": "Get Training Center transactions",
                "description": "Get all transactions for Training Center with comprehensive details including payer, payee, commission ledger, and reference information.",
                "operationId": "e3b40917a10e5a57c5c722d1effb4928",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "description": "Search by transaction ID, type, status, description, payer name (ACC/Training Center/Instructor), payee name (ACC/Training Center/Instructor), or payment gateway transaction ID",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "subscription",
                                "code_purchase",
                                "material_purchase",
                                "course_purchase",
                                "commission",
                                "settlement",
                                "instructor_authorization"
                            ]
                        },
                        "example": "instructor_authorization"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "completed",
                                "failed",
                                "refunded"
                            ]
                        },
                        "example": "completed"
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-01-01"
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        },
                        "example": "2024-12-31"
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 15
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        },
                        "example": 1
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Transactions retrieved successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "summary": {
                                            "type": "object"
                                        },
                                        "statistics": {
                                            "description": "Detailed statistics by status and transaction type",
                                            "type": "object"
                                        },
                                        "current_page": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": 15
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 50
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthenticated"
                    },
                    "404": {
                        "description": "Training center not found"
                    }
                },
                "security": [
                    {
                        "sanctum": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "sanctum": {
                "type": "apiKey",
                "description": "Enter token in format (Bearer <token>)",
                "name": "Authorization",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Authentication",
            "description": "Authentication endpoints"
        },
        {
            "name": "Admin",
            "description": "Group Admin endpoints"
        },
        {
            "name": "ACC",
            "description": "ACC Admin endpoints"
        },
        {
            "name": "Training Center",
            "description": "Training Center endpoints"
        },
        {
            "name": "Instructor",
            "description": "Instructor endpoints"
        },
        {
            "name": "Admin - Stripe Connect",
            "description": "Admin - Stripe Connect"
        },
        {
            "name": "Certificates",
            "description": "Certificates"
        },
        {
            "name": "Countries & Cities",
            "description": "Countries & Cities"
        },
        {
            "name": "Files",
            "description": "Files"
        },
        {
            "name": "Nationalities",
            "description": "Nationalities"
        },
        {
            "name": "Notifications",
            "description": "Notifications"
        },
        {
            "name": "Stripe",
            "description": "Stripe"
        }
    ],
    "security": [
        {
            "sanctum": []
        }
    ]
}