{
    "openapi": "3.0.0",
    "info": {
        "title": "API CURSOS",
        "description": "Listado de URI'S de la API Usuarios",
        "version": "1.0"
    },
    "servers": [
        {
            "url": "http://127.0.0.1:8000"
        }
    ],
    "paths": {
        "/api/login": {
            "post": {
                "tags": [
                    "Autenticación"
                ],
                "summary": "Inicio de sesión",
                "operationId": "44212a9096e4b09358281e9ec8a0701d",
                "requestBody": {
                    "description": "Datos de inicio de sesión",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "identification_number",
                                    "password"
                                ],
                                "properties": {
                                    "identification_number": {
                                        "type": "string",
                                        "example": "0000000000"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "S3cureP4ssword2024*"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Iniciar sesión exitoso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "user": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "role_id": {
                                                    "type": "integer"
                                                },
                                                "identification_type_id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "last_name": {
                                                    "type": "string"
                                                },
                                                "identification_number": {
                                                    "type": "string"
                                                },
                                                "phone_number": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "email_verified_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "created_by_user_id": {
                                                    "type": "integer",
                                                    "nullable": true
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "deleted_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "authorization": {
                                            "properties": {
                                                "token": {
                                                    "type": "string"
                                                },
                                                "type": {
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Credenciales inválidas"
                    }
                }
            }
        },
        "/api/institutions": {
            "get": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Obtener lista de instituciones",
                "description": "Devuelve una lista de todas las instituciones.",
                "operationId": "32ef01ce0a6e2578738f42463f66c478",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de ítems por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operación exitosa"
                    },
                    "401": {
                        "description": "No autenticado"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Crear una nueva institución",
                "description": "Crea una nueva institución junto con su representante y cursos asociados.",
                "operationId": "e28467aab770e2d18c848aa01045d4a0",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "institutions",
                                    "representative",
                                    "courses"
                                ],
                                "properties": {
                                    "institutions": {
                                        "description": "Datos de la institución",
                                        "properties": {
                                            "name": {
                                                "type": "string",
                                                "example": "Nombre de la institución"
                                            },
                                            "department_id": {
                                                "type": "integer",
                                                "example": "1"
                                            },
                                            "city_id": {
                                                "type": "integer",
                                                "example": "1"
                                            },
                                            "address": {
                                                "type": "string",
                                                "example": "Dirección de la institución"
                                            },
                                            "phone_number": {
                                                "type": "string",
                                                "example": "123456789"
                                            },
                                            "email": {
                                                "type": "string",
                                                "format": "email",
                                                "example": "correo@example.com"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "representative": {
                                        "description": "Datos del representante",
                                        "properties": {
                                            "name": {
                                                "type": "string",
                                                "example": "Nombre del representante"
                                            },
                                            "last_name": {
                                                "type": "string",
                                                "example": "Apellido del representante"
                                            },
                                            "identification_type_id": {
                                                "type": "integer",
                                                "example": "1"
                                            },
                                            "identification_number": {
                                                "type": "string",
                                                "example": "123456789"
                                            },
                                            "phone_number": {
                                                "type": "string",
                                                "example": "123456789"
                                            },
                                            "email": {
                                                "type": "string",
                                                "format": "email",
                                                "example": "correo@example.com"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "courses": {
                                        "type": "array",
                                        "items": {
                                            "description": "Datos del curso",
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "example": "Nombre del curso"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Institución creada exitosamente"
                    },
                    "401": {
                        "description": "No autenticado"
                    },
                    "422": {
                        "description": "Entidad no procesable"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/institutions/{id}": {
            "get": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Mostrar detalles de una institución",
                "description": "Devuelve los detalles de una institución específica, incluyendo su representante y cursos asociados.",
                "operationId": "4a5b3fd215a154d02869584f81ae4c1c",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la institución a mostrar",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Operación exitosa"
                    },
                    "401": {
                        "description": "No autenticado"
                    },
                    "404": {
                        "description": "No encontrado"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Actualizar una institución existente",
                "description": "Actualiza una institución existente junto con su representante y cursos asociados.",
                "operationId": "98e02a95fe073abbbe97909a8051ce25",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la institución a actualizar",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "requestBody": {
                    "required": true
                },
                "responses": {
                    "200": {
                        "description": "Institución actualizada exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Institución actualizada exitosamente"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "No autenticado"
                    },
                    "404": {
                        "description": "No encontrado"
                    },
                    "422": {
                        "description": "Entidad no procesable"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Eliminar una institución",
                "description": "Elimina una institución existente junto con su representante y cursos asociados.",
                "operationId": "cd99565e970d793f5a5991ac151fbaa4",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la institución a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Institución eliminada exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Institución eliminada exitosamente"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "No autenticado"
                    },
                    "404": {
                        "description": "No encontrado"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/institutions/courses/{id}": {
            "delete": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Eliminar un curso",
                "description": "Elimina un curso existente por su ID.",
                "operationId": "fa64e1b07b9b125c72d41a777db552f1",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del curso a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Curso eliminado exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Curso eliminado exitosamente"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "No autenticado"
                    },
                    "404": {
                        "description": "No encontrado"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/institutions/{id}/change-status": {
            "put": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Cambiar estado de una institución",
                "description": "Cambia el estado de una institución por su ID.",
                "operationId": "bf4838c0f3b2a421287b97c1a46882b6",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la institución",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "status"
                                ],
                                "properties": {
                                    "status": {
                                        "description": "Nuevo estado de la institución (activo o inactivo)",
                                        "type": "string",
                                        "enum": [
                                            "activo",
                                            "inactivo"
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Estado de la institución cambiado exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "El estado de la institución ha sido cambiado correctamente"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Solicitud incorrecta",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "El estado enviado no es válido"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "La institución no fue encontrada"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error del servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "Ha ocurrido un error al cambiar el estado de la institución"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/institutions/{id}/courses": {
            "get": {
                "tags": [
                    "Instituciones"
                ],
                "summary": "Obtener cursos de una institución",
                "description": "Obtiene todos los cursos de una institución por su ID.",
                "operationId": "d6a3eb00572f0fe1c6af455e13bc4867",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la institución",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int64"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cursos de la institución obtenidos exitosamente"
                    },
                    "404": {
                        "description": "No encontrado"
                    },
                    "500": {
                        "description": "Error del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation": {
            "get": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Obtener una lista paginada de micro simulaciones",
                "operationId": "16d59b74c816e488d4a116755b86f884",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de elementos por página (por defecto 10)",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Nombre de la micro simulación a filtrar",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "subject_id",
                        "in": "query",
                        "description": "ID del tema al que pertenece la micro simulación",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "min_questions",
                        "in": "query",
                        "description": "Número mínimo de preguntas que debe contener la micro simulación",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "max_questions",
                        "in": "query",
                        "description": "Número máximo de preguntas que debe contener la micro simulación",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Estado de la micro simulación (activo, inactivo, etc.)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "activo",
                                "inactivo"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista paginada de micro simulaciones obtenida exitosamente"
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Crear una nueva micro simulación",
                "operationId": "eac3e5fc2f136ceedc71514afde0e89b",
                "requestBody": {
                    "description": "Datos de la micro simulación a crear",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "subject_id",
                                    "question_times",
                                    "questions"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Micro Simulación 1"
                                    },
                                    "subject_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "question_times": {
                                        "type": "string",
                                        "example": "10"
                                    },
                                    "questions": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "subject_knowledge_area_id",
                                                "question",
                                                "answers"
                                            ],
                                            "properties": {
                                                "subject_knowledge_area_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "question": {
                                                    "type": "string",
                                                    "example": "¿Cuál es la capital de Francia?"
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "Detalle"
                                                },
                                                "files": {
                                                    "type": "array",
                                                    "items": {
                                                        "description": "Archivo de imagen de la pregunta (opcional, max 3 imágenes)",
                                                        "type": "string",
                                                        "format": "binary"
                                                    }
                                                },
                                                "answers": {
                                                    "type": "array",
                                                    "items": {
                                                        "required": [
                                                            "is_correct"
                                                        ],
                                                        "properties": {
                                                            "answer": {
                                                                "type": "string",
                                                                "example": "París"
                                                            },
                                                            "is_correct": {
                                                                "type": "boolean",
                                                                "example": true
                                                            },
                                                            "file": {
                                                                "description": "Archivo de imagen de la respuesta (opcional)",
                                                                "type": "string",
                                                                "format": "binary"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Micro simulación creada exitosamente"
                    },
                    "400": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation/delete-images/{id}": {
            "delete": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Eliminar una imagen de una pregunta de micro simulación",
                "operationId": "ec20288290e633164d8c0689e73731d2",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la imagen de la pregunta a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Imagen eliminada exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Imagen eliminada exitosamente."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Imagen no encontrada. El ID proporcionado no existe.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "Imagen no encontrada."
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "No query results for model [App\\\\Models\\\\MicroSimulationQuestionImage] 1"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error al eliminar la imagen.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "Error al eliminar la imagen."
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Detalles del error"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation/{id}": {
            "get": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Obtener detalles de una micro simulación específica",
                "operationId": "949bfea8b9a6a54437950cb0289bc363",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la micro simulación",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Detalles de la micro simulación obtenidos exitosamente"
                    },
                    "404": {
                        "description": "Recurso no encontrado. La micro simulación con el ID proporcionado no existe."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulations/{id}": {
            "post": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Actualizar una micro simulación existente",
                "operationId": "89172e092858143bcac244b8cae01212",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la micro simulación a actualizar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Datos de la micro simulación a actualizar",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "subject_id",
                                    "status",
                                    "question_times",
                                    "questions"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Micro Simulación 1"
                                    },
                                    "subject_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "status": {
                                        "type": "string",
                                        "enum": [
                                            "activo",
                                            "inactivo"
                                        ],
                                        "example": "activo"
                                    },
                                    "question_times": {
                                        "type": "string",
                                        "example": "10 minutes"
                                    },
                                    "questions": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "subject_knowledge_area_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "question": {
                                                    "type": "string",
                                                    "example": "¿Cuál es la capital de Francia?"
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "Detalle"
                                                },
                                                "files": {
                                                    "type": "array",
                                                    "items": {
                                                        "description": "Archivo de imagen de la pregunta (opcional, max 3 imágenes)",
                                                        "type": "string",
                                                        "format": "binary"
                                                    }
                                                },
                                                "answers": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 1
                                                            },
                                                            "answer": {
                                                                "type": "string",
                                                                "example": "París"
                                                            },
                                                            "is_correct": {
                                                                "type": "boolean",
                                                                "example": true
                                                            },
                                                            "file": {
                                                                "description": "Archivo de imagen de la respuesta (opcional)",
                                                                "type": "string",
                                                                "format": "binary"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Micro simulación actualizada exitosamente"
                    },
                    "400": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "404": {
                        "description": "Recurso no encontrado. La micro simulación con el ID proporcionado no existe."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Eliminar una micro simulación",
                "operationId": "1340f63426f5b329d0c9aeb0082de4cd",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la micro simulación a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Micro simulación eliminada exitosamente"
                    },
                    "404": {
                        "description": "Recurso no encontrado. La micro simulación con el ID proporcionado no existe."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation/delete-answer-image/{id}": {
            "delete": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Eliminar imagen asociada a una respuesta de micro simulación",
                "operationId": "aae2bddd24888170e5c741d867fc33d1",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la respuesta de micro simulación cuya imagen se desea eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Imagen eliminada exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Imagen eliminada exitosamente."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Imagen no encontrada",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "Imagen no encontrada."
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "No se encontró una imagen con el ID proporcionado."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error interno del servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "Error al eliminar la imagen."
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Descripción detallada del error."
                                        },
                                        "line": {
                                            "type": "integer",
                                            "example": 123
                                        },
                                        "file": {
                                            "type": "string",
                                            "example": "/path/to/file.php"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation/micro-simulation-answers": {
            "delete": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Eliminar respuestas de micro simulacros",
                "operationId": "e6423d39d54b24d9d95a09e976715f92",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "answers_ids": {
                                        "description": "Array de IDs de las respuestas a eliminar",
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "204": {
                        "description": "Respuestas eliminadas exitosamente"
                    },
                    "422": {
                        "description": "Datos de entrada no válidos",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "errors": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error interno del servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation/{id}/change-status": {
            "put": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Cambiar el estado de una micro simulación",
                "operationId": "a1d6b6ac59d8492dbbde6fc370f8579f",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID de la micro simulación",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Nuevo estado de la micro simulación ('activo' o 'inactivo')",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "activo",
                                "inactivo"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "El estado de la micro simulación ha sido cambiado exitosamente"
                    },
                    "400": {
                        "description": "Solicitud inválida. El estado proporcionado no es válido o ya es el estado actual de la micro simulación."
                    },
                    "404": {
                        "description": "Recurso no encontrado. La micro simulación con el ID proporcionado no existe."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/micro-simulation/{questionId}/delete-question": {
            "delete": {
                "tags": [
                    "Micro Simulacros"
                ],
                "summary": "Eliminar una pregunta de micro simulación",
                "operationId": "509b7baccaa3e1a3a73db0b771e3a3fa",
                "parameters": [
                    {
                        "name": "questionId",
                        "in": "path",
                        "description": "ID de la pregunta a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pregunta eliminada exitosamente"
                    },
                    "404": {
                        "description": "Recurso no encontrado. La pregunta con el ID proporcionado no existe."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/statistics/average-scores": {
            "get": {
                "tags": [
                    "Estadísticas"
                ],
                "summary": "Obtener promedios de calificaciones por materia y por institución",
                "operationId": "05c76e6c8e87049b7429fb3d5ef93be8",
                "responses": {
                    "200": {
                        "description": "Promedios de calificaciones obtenidos exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "labels": {
                                            "description": "Lista de nombres de las materias",
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "datasets": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "label": {
                                                        "description": "Nombre de la institución",
                                                        "type": "string"
                                                    },
                                                    "data": {
                                                        "description": "Promedios de calificaciones por materia",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "number"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error interno del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/statistics/export-average-scores-to-excel": {
            "get": {
                "tags": [
                    "Estadísticas"
                ],
                "summary": "Exportar promedios de calificaciones por materia y por institución a Excel",
                "operationId": "092860e323c63aa85ae029dd05c28a2f",
                "parameters": [
                    {
                        "name": "start_date",
                        "in": "query",
                        "description": "Fecha de inicio (opcional)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "end_date",
                        "in": "query",
                        "description": "Fecha de fin (opcional)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Archivo Excel descargado exitosamente"
                    },
                    "500": {
                        "description": "Error interno del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/statistics/average-scores-by-course/{institutionId}": {
            "get": {
                "tags": [
                    "Estadísticas"
                ],
                "summary": "Obtener promedios de calificaciones por materia de cada curso de una institución",
                "operationId": "133a6919894a7aa2c8a68e0f73f67681",
                "parameters": [
                    {
                        "name": "institutionId",
                        "in": "path",
                        "description": "ID de la institución",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Promedios de calificaciones obtenidos exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "labels": {
                                            "description": "Lista de nombres de las materias",
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "datasets": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "label": {
                                                        "description": "Nombre del curso",
                                                        "type": "string"
                                                    },
                                                    "data": {
                                                        "description": "Promedios de calificaciones por materia",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "number"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Institución no encontrada"
                    },
                    "500": {
                        "description": "Error interno del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/statistics/average-scores-by-course-to-excel/{institutionId}": {
            "get": {
                "tags": [
                    "Estadísticas"
                ],
                "summary": "Exportar promedios de calificaciones por materia de cada curso de una institución a Excel",
                "operationId": "22f0957f1242dcf40f9ab790ec523d53",
                "parameters": [
                    {
                        "name": "institutionId",
                        "in": "path",
                        "description": "ID de la institución",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "start_date",
                        "in": "query",
                        "description": "Fecha de inicio (opcional)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "end_date",
                        "in": "query",
                        "description": "Fecha de fin (opcional)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Archivo Excel descargado exitosamente"
                    },
                    "404": {
                        "description": "Institución no encontrada"
                    },
                    "500": {
                        "description": "Error interno del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/statistics/average-scores-by-subject/{institutionId}": {
            "get": {
                "tags": [
                    "Estadísticas"
                ],
                "summary": "Obtener promedio de calificaciones por materia de una institución",
                "operationId": "2a38865beecb9acbc08e7d1acd60ae83",
                "parameters": [
                    {
                        "name": "institutionId",
                        "in": "path",
                        "description": "ID de la institución",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Promedios de calificaciones obtenidos exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "labels": {
                                            "description": "Lista de nombres de las materias",
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "datasets": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "label": {
                                                        "description": "Promedio de Calificación",
                                                        "type": "string"
                                                    },
                                                    "data": {
                                                        "description": "Promedios de calificaciones por materia",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "number"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Institución no encontrada"
                    },
                    "500": {
                        "description": "Error interno del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/statistics/average-scores-by-subject-for-user/{userId}": {
            "get": {
                "tags": [
                    "Estadísticas"
                ],
                "summary": "Obtener el promedio de calificaciones por materia para un usuario específico",
                "operationId": "136b437d9db6c12945fd0df323a069c1",
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "description": "ID del usuario",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Promedios de calificaciones por materia obtenidos exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "labels": {
                                            "description": "Nombres de las materias",
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        },
                                        "datasets": {
                                            "description": "Datos de los promedios de calificaciones",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "label": {
                                                        "description": "Etiqueta del dataset",
                                                        "type": "string"
                                                    },
                                                    "data": {
                                                        "description": "Promedio de calificaciones por materia",
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Usuario no encontrado o no asociado con ninguna institución"
                    },
                    "500": {
                        "description": "Error interno del servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/students": {
            "get": {
                "tags": [
                    "Estudiantes"
                ],
                "summary": "Obtener una lista paginada de estudiantes con filtros opcionales.",
                "description": "Obtener una lista paginada de estudiantes con filtros opcionales.",
                "operationId": "75378cfd9c3d128e0846de3d32b101ec",
                "parameters": [
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Filtrar por nombre del estudiante.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "institution_course_id",
                        "in": "query",
                        "description": "Filtrar por ID del curso de la institución.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "identification_number",
                        "in": "query",
                        "description": "Filtrar por número de identificación del estudiante.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de estudiantes por página. Dejar vacío para obtener todos los registros.",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista paginada de estudiantes."
                    },
                    "422": {
                        "description": "Error de validación.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Estudiantes"
                ],
                "summary": "Crear un nuevo estudiante.",
                "description": "Crear un nuevo estudiante.",
                "operationId": "5e69d562cd0a6141ac0ffdd5a921d62b",
                "requestBody": {
                    "description": "Datos del estudiante a crear.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "institution_course_id",
                                    "name",
                                    "identification_type_id",
                                    "identification_number"
                                ],
                                "properties": {
                                    "institution_course_id": {
                                        "description": "ID del curso al que pertenece el estudiante.",
                                        "type": "integer"
                                    },
                                    "name": {
                                        "description": "Nombre del estudiante.",
                                        "type": "string"
                                    },
                                    "identification_type_id": {
                                        "description": "ID del tipo de identificación.",
                                        "type": "integer"
                                    },
                                    "identification_number": {
                                        "description": "Número de identificación del estudiante.",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Estudiante creado exitosamente.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Error de validación.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error al procesar la solicitud.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/students/{id}": {
            "put": {
                "tags": [
                    "Estudiantes"
                ],
                "summary": "Actualizar un estudiante existente.",
                "description": "Actualizar un estudiante existente.",
                "operationId": "ab4663f1b3d03e5867d9dce3e8fa14a3",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del estudiante a actualizar.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Datos actualizados del estudiante.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "institution_course_id",
                                    "name",
                                    "identification_type_id",
                                    "identification_number"
                                ],
                                "properties": {
                                    "institution_course_id": {
                                        "description": "ID del curso al que pertenece el estudiante.",
                                        "type": "integer"
                                    },
                                    "name": {
                                        "description": "Nombre actualizado del estudiante.",
                                        "type": "string"
                                    },
                                    "identification_type_id": {
                                        "description": "ID actualizado del tipo de identificación.",
                                        "type": "integer"
                                    },
                                    "identification_number": {
                                        "description": "Número de identificación actualizado del estudiante.",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Estudiante actualizado exitosamente.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Estudiante no encontrado.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Error de validación.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error al procesar la solicitud.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Estudiantes"
                ],
                "summary": "Eliminar un estudiante existente.",
                "description": "Eliminar un estudiante existente.",
                "operationId": "ae8784bb4ca4b3b3614a7366dc0f5138",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del estudiante a eliminar.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Estudiante eliminado exitosamente.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Estudiante no encontrado.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error al procesar la solicitud.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/students/import": {
            "post": {
                "tags": [
                    "Estudiantes"
                ],
                "summary": "Importar estudiantes desde un archivo Excel.",
                "description": "Importar estudiantes desde un archivo Excel.",
                "operationId": "311e745aef8eff17f27412b3c92b8f32",
                "requestBody": {
                    "description": "Archivo Excel y ID del curso de la institución al que se asignarán los estudiantes.",
                    "required": true,
                    "content": {
                        "multipart/form-data": {
                            "schema": {
                                "properties": {
                                    "file": {
                                        "description": "Archivo Excel con los datos de los estudiantes.",
                                        "type": "string",
                                        "format": "binary"
                                    },
                                    "institution_course_id": {
                                        "description": "ID del curso de la institución al que se asignarán los estudiantes.",
                                        "type": "integer"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Estudiantes creados exitosamente desde el archivo Excel.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success_count": {
                                            "description": "Número de estudiantes creados exitosamente.",
                                            "type": "integer"
                                        },
                                        "failure_count": {
                                            "description": "Número de estudiantes que no se pudieron crear.",
                                            "type": "integer"
                                        },
                                        "message": {
                                            "description": "Mensaje de éxito.",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Algunos estudiantes no se pudieron crear porque ya existen en otros cursos.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success_count": {
                                            "description": "Número de estudiantes creados exitosamente.",
                                            "type": "integer"
                                        },
                                        "failure_count": {
                                            "description": "Número de estudiantes que no se pudieron crear.",
                                            "type": "integer"
                                        },
                                        "students_with_errors": {
                                            "description": "Estudiantes que no se pudieron crear con detalles de error.",
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "name": {
                                                        "description": "Nombre del estudiante.",
                                                        "type": "string"
                                                    },
                                                    "identification_number": {
                                                        "description": "Número de identificación del estudiante.",
                                                        "type": "string"
                                                    },
                                                    "course_id": {
                                                        "description": "ID del curso en el que el estudiante ya está registrado.",
                                                        "type": "integer"
                                                    },
                                                    "course_name": {
                                                        "description": "Nombre del curso en el que el estudiante ya está registrado.",
                                                        "type": "string"
                                                    },
                                                    "institution_name": {
                                                        "description": "Nombre de la institución en la que el estudiante ya está registrado.",
                                                        "type": "string"
                                                    },
                                                    "institution_city": {
                                                        "description": "Nombre de la ciudad de la institución en la que el estudiante ya está registrado.",
                                                        "type": "string"
                                                    },
                                                    "error": {
                                                        "description": "Mensaje de error.",
                                                        "type": "string"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "message": {
                                            "description": "Mensaje de error.",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error al procesar la solicitud.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "description": "Mensaje de error.",
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/subject": {
            "get": {
                "tags": [
                    "Materias"
                ],
                "summary": "Obtener una lista de temas",
                "operationId": "cca73836ae225bf78aa61ce954d8c045",
                "parameters": [
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de temas por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 10
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Nombre del tema para filtrar",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de temas",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "example": "1"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "description": {
                                                        "type": "string"
                                                    },
                                                    "created_by_user_id": {
                                                        "type": "integer"
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "knowledge_areas_count": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "example": "/api/subjects?page=1"
                                        },
                                        "from": {
                                            "type": "integer",
                                            "example": "1"
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": "1"
                                        },
                                        "last_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "example": "/api/subjects?page=1"
                                        },
                                        "next_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "nullable": true
                                        },
                                        "path": {
                                            "type": "string",
                                            "example": "/api/subjects"
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": "10"
                                        },
                                        "prev_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "nullable": true
                                        },
                                        "to": {
                                            "type": "integer",
                                            "example": "2"
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": "2"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Materias"
                ],
                "summary": "Crear un nuevo tema con áreas de conocimiento",
                "operationId": "6adcee2c62c8c8eaa089b70683fd7efb",
                "requestBody": {
                    "description": "Datos del tema y sus áreas de conocimiento",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "description",
                                    "knowledge_areas"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Matemáticas"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "esto es una prueba"
                                    },
                                    "knowledge_areas": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "name",
                                                "evaluation_percentage"
                                            ],
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "example": "Álgebra"
                                                },
                                                "evaluation_percentage": {
                                                    "type": "integer",
                                                    "example": 25
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Tema creado exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "description": {
                                            "type": "string"
                                        },
                                        "created_by_user_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "knowledge_areas": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "evaluation_percentage": {
                                                        "type": "integer"
                                                    },
                                                    "created_by_user_id": {
                                                        "type": "integer"
                                                    },
                                                    "subject_id": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor. Ocurrió un problema al crear el tema."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/subject/{id}": {
            "get": {
                "tags": [
                    "Materias"
                ],
                "summary": "Obtener información detallada de un tema",
                "operationId": "3574c2071920c78531690d81616af002",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del tema a obtener información",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Información detallada del tema",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "description": {
                                            "type": "string"
                                        },
                                        "created_by_user_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "knowledge_areas": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "subject_id": {
                                                        "type": "integer"
                                                    },
                                                    "evaluation_percentage": {
                                                        "type": "integer"
                                                    },
                                                    "created_by_user_id": {
                                                        "type": "integer"
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Tema no encontrado"
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Materias"
                ],
                "summary": "Actualizar un tema y sus áreas de conocimiento",
                "operationId": "46cb3a748796e46da4c28b11f434d141",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del tema a actualizar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Datos actualizados del tema y sus áreas de conocimiento",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "description",
                                    "knowledge_areas"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Matemáticas"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "esto es una prueba"
                                    },
                                    "knowledge_areas": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "id",
                                                "name",
                                                "evaluation_percentage"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Álgebra"
                                                },
                                                "evaluation_percentage": {
                                                    "type": "integer",
                                                    "example": 25
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Tema actualizado exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Subject updated successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "404": {
                        "description": "Tema no encontrado"
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor. Ocurrió un problema al actualizar el tema."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Materias"
                ],
                "summary": "Eliminar un tema y todas sus áreas de conocimiento",
                "operationId": "b74cdfb32dc484c9e62031144e51969a",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del tema a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Tema eliminado exitosamente"
                    },
                    "404": {
                        "description": "Tema no encontrado"
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor. Ocurrió un problema al eliminar el tema."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/subject/get-list-subjects": {
            "get": {
                "tags": [
                    "Materias"
                ],
                "summary": "Obtener la lista de materias",
                "operationId": "179e24a3d0c4ab4c3e64fc0737d0d07f",
                "responses": {
                    "200": {
                        "description": "Lista de materias obtenida exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "example": 1
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Math"
                                            },
                                            "description": {
                                                "type": "string",
                                                "example": "Mathematics subject"
                                            }
                                        },
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Error interno del servidor al obtener la lista de materias."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/subject/get-list-areas/{subject_id}": {
            "get": {
                "tags": [
                    "Materias"
                ],
                "summary": "Obtener áreas de conocimiento asociadas a un tema específico",
                "operationId": "13511cd5eb699a5c0d538443300eb6cf",
                "parameters": [
                    {
                        "name": "subject_id",
                        "in": "path",
                        "description": "ID del tema",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Áreas de conocimiento obtenidas exitosamente",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "properties": {
                                            "id": {
                                                "description": "ID del área de conocimiento",
                                                "type": "integer"
                                            },
                                            "name": {
                                                "description": "Nombre del área de conocimiento",
                                                "type": "string"
                                            },
                                            "evaluation_percentage": {
                                                "description": "Porcentaje de evaluación del área",
                                                "type": "integer"
                                            },
                                            "subject_id": {
                                                "description": "ID del tema asociado al área",
                                                "type": "integer"
                                            }
                                        },
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Recurso no encontrado. El tema con el ID proporcionado no existe."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/user/accept-terms/{userId}": {
            "post": {
                "tags": [
                    "Terminos y condiciones"
                ],
                "summary": "Aceptar los terminos y condiciones",
                "description": "Accept terms and conditions for a specific user.",
                "operationId": "7d35547cf3bf53bd4babe7f6efaf8869",
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "description": "ID del usuario",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Terms and conditions accepted successfully",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Terms and conditions accepted successfully"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User not found",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "error": {
                                            "type": "string",
                                            "example": "User not found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/user": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Recuperar una lista de usuarios",
                "operationId": "971db9bc974c0e607288cfe7ecc10096",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número de página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de usuarios por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 10
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "description": "Nombre del usuario",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "Nombre del usuario"
                        }
                    },
                    {
                        "name": "identification_number",
                        "in": "query",
                        "description": "Número de identificación",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "0000000000"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Estado (activo, inactivo)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "activo"
                        }
                    },
                    {
                        "name": "role_id",
                        "in": "query",
                        "description": "Rol de usuario (1\tAdministrador, 2\tEstudiante, 3\tRepresentante de la institucion)",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List of users",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "current_page": {
                                            "type": "integer",
                                            "example": "1"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "role_id": {
                                                        "type": "integer"
                                                    },
                                                    "identification_type_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "last_name": {
                                                        "type": "string"
                                                    },
                                                    "identification_number": {
                                                        "type": "string"
                                                    },
                                                    "phone_number": {
                                                        "type": "string"
                                                    },
                                                    "email": {
                                                        "type": "string"
                                                    },
                                                    "email_verified_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "status": {
                                                        "type": "string"
                                                    },
                                                    "created_by_user_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "updated_at": {
                                                        "type": "string",
                                                        "format": "date-time"
                                                    },
                                                    "deleted_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "first_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "example": "/api/user?page=1"
                                        },
                                        "from": {
                                            "type": "integer",
                                            "example": "1"
                                        },
                                        "last_page": {
                                            "type": "integer",
                                            "example": "1"
                                        },
                                        "last_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "example": "/api/user?page=1"
                                        },
                                        "links": {
                                            "type": "array",
                                            "items": {
                                                "properties": {
                                                    "url": {
                                                        "type": "string",
                                                        "nullable": true
                                                    },
                                                    "label": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    }
                                                },
                                                "type": "object"
                                            }
                                        },
                                        "next_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "nullable": true
                                        },
                                        "path": {
                                            "type": "string",
                                            "example": "/api/user"
                                        },
                                        "per_page": {
                                            "type": "integer",
                                            "example": "10"
                                        },
                                        "prev_page_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "nullable": true
                                        },
                                        "to": {
                                            "type": "integer",
                                            "example": "2"
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": "2"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Users"
                ],
                "summary": "Crear un nuevo usuario",
                "operationId": "089999749fbdec98922de2f74ba8d540",
                "requestBody": {
                    "description": "Datos del usuario a crear",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "last_name",
                                    "email",
                                    "role_id",
                                    "identification_type_id",
                                    "identification_number",
                                    "phone_number",
                                    "status",
                                    "password"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Yecid A."
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Tovar"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "ytovar2@arcetec.com.co"
                                    },
                                    "role_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "identification_type_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "identification_number": {
                                        "type": "string",
                                        "example": "0000000001"
                                    },
                                    "phone_number": {
                                        "type": "string",
                                        "example": "3214140263"
                                    },
                                    "status": {
                                        "type": "string",
                                        "example": "activo"
                                    },
                                    "password": {
                                        "type": "string",
                                        "example": "S3cureP4ssword2024*"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Usuario creado exitosamente"
                    },
                    "422": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/user/{id}": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Obtener información detallada de un usuario",
                "operationId": "d8f696420bea235f4916124c9ba1c507",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del usuario",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Información detallada del usuario",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "role_id": {
                                            "type": "integer"
                                        },
                                        "identification_type_id": {
                                            "type": "integer"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "last_name": {
                                            "type": "string"
                                        },
                                        "identification_number": {
                                            "type": "string"
                                        },
                                        "phone_number": {
                                            "type": "string"
                                        },
                                        "email": {
                                            "type": "string"
                                        },
                                        "email_verified_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "status": {
                                            "type": "string"
                                        },
                                        "created_by_user_id": {
                                            "type": "integer",
                                            "nullable": true
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "deleted_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Usuario no encontrado"
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Users"
                ],
                "summary": "Actualizar un usuario existente",
                "operationId": "5e09c26a0abb2b1bf040badb2d9c69ba",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del usuario a actualizar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Datos actualizados del usuario",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "last_name",
                                    "email",
                                    "role_id",
                                    "identification_type_id",
                                    "identification_number",
                                    "phone_number",
                                    "status"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Yecid A"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Tovar"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "ytovar@arcetec.com.co"
                                    },
                                    "role_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "identification_type_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "identification_number": {
                                        "type": "string",
                                        "example": "0000000000"
                                    },
                                    "phone_number": {
                                        "type": "string",
                                        "example": "3214140263"
                                    },
                                    "status": {
                                        "type": "string",
                                        "example": "activo"
                                    },
                                    "password": {
                                        "type": "string",
                                        "example": "S3cureP4ssword2024*"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Usuario actualizado exitosamente"
                    },
                    "404": {
                        "description": "Usuario no encontrado"
                    },
                    "422": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Users"
                ],
                "summary": "Eliminar un usuario",
                "operationId": "f8d7aea516ee464d0afee90f3a1a1722",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID del usuario a eliminar",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "Usuario eliminado exitosamente"
                    },
                    "404": {
                        "description": "Usuario no encontrado"
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/user/change-password": {
            "post": {
                "tags": [
                    "Users"
                ],
                "summary": "Cambiar la contraseña del usuario actual",
                "operationId": "157894b6e5270c75e20d2661b242e883",
                "requestBody": {
                    "description": "Nueva contraseña del usuario",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "new_password",
                                    "new_password_confirmation"
                                ],
                                "properties": {
                                    "new_password": {
                                        "type": "string",
                                        "format": "password",
                                        "minLength": 8,
                                        "example": "NewSecurePassword2024*"
                                    },
                                    "new_password_confirmation": {
                                        "type": "string",
                                        "format": "password",
                                        "minLength": 8,
                                        "example": "NewSecurePassword2024*"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Contraseña cambiada correctamente"
                    },
                    "400": {
                        "description": "Error de validación. Información faltante o incorrecta en la solicitud."
                    },
                    "401": {
                        "description": "No autorizado. Token de acceso no válido o no proporcionado."
                    },
                    "500": {
                        "description": "Error interno del servidor."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "name": "Authorization",
                "in": "header",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    }
}