{"openapi":"3.1.0","info":{"title":"API Centurión","description":"API para gestionar controladores y proyectos","version":"1.0.0"},"paths":{"/sistema/test":{"get":{"tags":["Sistema"],"summary":"Test","description":"Realiza una prueba de conexión con base de datos y servidor MQTT.","operationId":"test_sistema_test_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"manual","in":"query","required":true,"schema":{"type":"boolean","title":"Manual"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sistema/respaldo":{"post":{"tags":["Sistema"],"summary":"Database Backup ","description":"Ejecuta la tarea de respaldo de base de datos.","operationId":"database_backup__sistema_respaldo_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/sistema/ClientStatus":{"post":{"tags":["Sistema"],"summary":"Client Connection Status","description":"Envia notificación por correo electrónico y por telegram cada vez que se conecta/desconecta un cliente del broker.","operationId":"client_connection_status_sistema_ClientStatus_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/estadoCliente"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sistema/testCenturion":{"post":{"tags":["Sistema"],"summary":"Test Init","description":"Ejecuta una prueba general a un controlador específico. La prueba consiste en enviar programación y cambiar los modos de operación.","operationId":"test_init_sistema_testCenturion_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/testCenturion"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sistema/test-email":{"post":{"tags":["Sistema"],"summary":"Test Send Notification","operationId":"test_send_notification_sistema_test_email_post","parameters":[{"name":"destinatario","in":"query","required":true,"schema":{"type":"string","title":"Destinatario"}},{"name":"asunto","in":"query","required":false,"schema":{"type":"string","default":"Prueba de notificación Centurión","title":"Asunto"}},{"name":"mensaje","in":"query","required":false,"schema":{"type":"string","default":"Este es un correo de prueba enviado desde /sistema/test-email.","title":"Mensaje"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sistema/test-whatsapp-hello":{"post":{"tags":["Sistema"],"summary":"Test Whatsapp Hello","operationId":"test_whatsapp_hello_sistema_test_whatsapp_hello_post","parameters":[{"name":"to","in":"query","required":true,"schema":{"type":"string","title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sistema/test-whatsapp":{"post":{"tags":["Sistema"],"summary":"Test Whatsapp Alerta Desconexion","operationId":"test_whatsapp_alerta_desconexion_sistema_test_whatsapp_post","parameters":[{"name":"to","in":"query","required":true,"schema":{"type":"string","title":"To"}},{"name":"matricula","in":"query","required":false,"schema":{"type":"string","default":"CTRL-001","title":"Matricula"}},{"name":"interseccion","in":"query","required":false,"schema":{"type":"string","default":"Reforma y Juárez","title":"Interseccion"}},{"name":"latitude","in":"query","required":false,"schema":{"type":"number","default":19.4326,"title":"Latitude"}},{"name":"longitude","in":"query","required":false,"schema":{"type":"number","default":-99.1332,"title":"Longitude"}},{"name":"location_name","in":"query","required":false,"schema":{"type":"string","default":"Cruce Reforma","title":"Location Name"}},{"name":"address","in":"query","required":false,"schema":{"type":"string","default":"Av. Reforma 123","title":"Address"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/":{"post":{"tags":["Autenticación"],"summary":"Authentication","description":"Revisa si el usuario está en base de datos, su rol y si está relacionado con el proyecto ingresado.","operationId":"authentication_auth__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/external":{"post":{"tags":["Autenticación"],"summary":"External Authentication","description":"Revisa si el usuario está en base de datos, su rol y si está relacionado con el proyecto ingresado.","operationId":"external_authentication_auth_external_post","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$","description":"Dirección de correo electrónico válida","title":"Email"},"description":"Dirección de correo electrónico válida","example":"usuario@trafficlight.mx"},{"name":"password","in":"query","required":true,"schema":{"type":"string","title":"Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/monitoreo":{"get":{"tags":["Centurion info"],"summary":"Current State","description":"Revisa el último estado de Centurión específico con respecto a la fecha y hora ingresada.","operationId":"current_state_info_monitoreo_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"fecha","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$","description":"Fecha en formato YYYY-MM-DD","title":"Fecha"},"description":"Fecha en formato YYYY-MM-DD","example":"2025-09-01"},{"name":"hora","in":"query","required":true,"schema":{"type":"string","pattern":"^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$","description":"Hora en formato HH:MM:SS (24 horas)","title":"Hora"},"description":"Hora en formato HH:MM:SS (24 horas)","example":"17:13:13"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/listaEstados":{"get":{"tags":["Centurion info"],"summary":"List Of States","description":"Devuelve un JSON con la lista de estados que ha tenido Centurión en la fecha indicada.","operationId":"list_of_states_info_listaEstados_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"fecha","in":"query","required":true,"schema":{"type":"string","pattern":"^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$","description":"Fecha en formato YYYY-MM-DD","title":"Fecha"},"description":"Fecha en formato YYYY-MM-DD","example":"2025-09-01"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/controladores":{"get":{"tags":["Centurion info"],"summary":"List Of Controllers","description":"Devuelve un JSON con la lista de controladores activos con respecto al proyecto. Cada controlador muestra su nombre auxiliar, ubicación e intersección.","operationId":"list_of_controllers_info_controladores_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"proyecto","in":"query","required":true,"schema":{"type":"string","description":"Proyecto válido","title":"Proyecto"},"description":"Proyecto válido","example":"DEMO"},{"name":"manual","in":"query","required":true,"schema":{"type":"boolean","title":"Manual"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/historial":{"get":{"tags":["Centurion info"],"summary":"Programming History","description":"Devuelve un JSON con la lista de programaciones realizadas a un Centurión en específico. Cada item indica el usuario que programó, fecha, hora, origen y nota aurxiliar.","operationId":"programming_history_info_historial_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/progHistorial":{"get":{"tags":["Centurion info"],"summary":"Programming History Id","description":"Devuelve el JSON de programación de un item específico.","operationId":"programming_history_ID_info_progHistorial_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"ID","in":"query","required":true,"schema":{"type":"integer","description":"ID de historial entero","title":"Id"},"description":"ID de historial entero","example":"1"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/progActual":{"get":{"tags":["Centurion info"],"summary":"Current Programming","description":"Devuelve la última programación de un Centurión en específico.","operationId":"current_programming_info_progActual_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/proyectos":{"get":{"tags":["Centurion info"],"summary":"List Of Projects","description":"Devuelve los proyectos activos.","operationId":"list_of_projects_info_proyectos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/info/usuarios":{"get":{"tags":["Centurion info"],"summary":"List Of Users","description":"Devuelve la lista de usuarios.","operationId":"list_of_users_info_usuarios_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/info/status_controller":{"get":{"tags":["Centurion info"],"summary":"Status Controler","description":"Envia notificación por correo electrónico y por telegram cada vez que se conecta/desconecta un cliente del broker.","operationId":"status_controler_info_status_controller_get","parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"manual","in":"query","required":true,"schema":{"type":"boolean","title":"Manual"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/info/planos":{"get":{"tags":["Centurion info"],"summary":"Read Plans","operationId":"read_plans_info_planos_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"tipo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TipoConsulta"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update/add_control":{"post":{"tags":["Actualizar agregar"],"summary":"Add Controller","description":"Este endpoint agrega un nuevo controlador en la base de datos.","operationId":"add_controller_update_add_control_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Control"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update/delete_control":{"delete":{"tags":["Actualizar agregar"],"summary":"Delete Controller","description":"Elimina un controlador de la base de datos.","operationId":"delete_controller_update_delete_control_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","title":"Matricula"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update/add_user":{"post":{"tags":["Actualizar agregar"],"summary":"Add User ","description":"Agrega un nuevo usuario a base de datos.","operationId":"add_user__update_add_user_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/add_user"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update/proy_asign":{"post":{"tags":["Actualizar agregar"],"summary":"Assign Project","description":"Asigna proyecto a un usuario específico.","operationId":"assign_project_update_proy_asign_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/assign_user"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update/user_desactivate":{"patch":{"tags":["Actualizar agregar"],"summary":"Delete User","description":"Asigna proyecto a un usuario específico.","operationId":"delete_user_update_user_desactivate_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_desactivate_email","in":"query","required":true,"schema":{"type":"string","title":"User Desactivate Email"}},{"name":"estado","in":"query","required":true,"schema":{"type":"integer","title":"Estado"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update/agregar_planos":{"post":{"tags":["Actualizar agregar"],"summary":"Add Plans","operationId":"add_plans_update_agregar_planos_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_add_plans_update_agregar_planos_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update/borrar_planos":{"delete":{"tags":["Actualizar agregar"],"summary":"Delete Plans","operationId":"delete_plans_update_borrar_planos_delete","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_delete_plans_update_borrar_planos_delete"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update/add_config_scheme":{"patch":{"tags":["Actualizar agregar"],"summary":"Add Config","operationId":"add_config_update_add_config_scheme_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/config_eschema"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/update/delete_config_scheme/{matricula}":{"delete":{"tags":["Actualizar agregar"],"summary":"Delete Config","operationId":"delete_config_update_delete_config_scheme__matricula__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"path","required":true,"schema":{"type":"string","title":"Matricula"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update/notifications_control/{matricula}":{"patch":{"tags":["Actualizar agregar"],"summary":"Delete Config","description":"Notificaciones del control","operationId":"delete_config_update_notifications_control__matricula__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"path","required":true,"schema":{"type":"string","title":"Matricula"}},{"name":"estado","in":"query","required":true,"schema":{"type":"integer","title":"Estado"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update/user_update":{"patch":{"tags":["Actualizar agregar"],"summary":"User Update","operationId":"user_update_update_user_update_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_user"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/operacion/progLocal":{"post":{"tags":["Operación"],"summary":"Send Local Programming","description":"Guarda programación hecha localmente en base de datos.","operationId":"send_local_programming_operacion_progLocal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Local"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operacion/prog":{"post":{"tags":["Operación"],"summary":"Send Remote Programming","description":"Guarda programación hecha en página centralizado en base de datos y envía la programación al controlador.","operationId":"send_remote_programming_operacion_prog_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Operacion"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/operacion/modo":{"post":{"tags":["Operación"],"summary":"Send Operation Mode","description":"Cambia el modo de operación de Centurión. Automático (A), manual (M), semi-automático (S) y destello (D).","operationId":"send_operation_mode_operacion_modo_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Modo"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/operacion/local-conf":{"post":{"tags":["Operación"],"summary":"Config Local Mode","description":"Guarda la configuración local de un controlador específico en base de datos.","operationId":"config_local_mode_operacion_local_conf_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"manual","in":"query","required":true,"schema":{"type":"boolean","title":"Manual"}},{"name":"Matricula","in":"query","required":true,"schema":{"type":"string","title":"Matricula"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operacion/reset-pos":{"post":{"tags":["Operación"],"summary":"Config Local Mode","description":"Envía el comando RESET_POS a un controlador específico a través de MQTT.","operationId":"config_local_mode_operacion_reset_pos_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Matricula","in":"query","required":true,"schema":{"type":"string","title":"Matricula"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/operacion/emergency-mode":{"post":{"tags":["Operación"],"summary":"Config Local Mode","description":"Cambia a todo rojo indefinidamente a una serie de controladores específicos dependiendo de la zona ingresada.","operationId":"config_local_mode_operacion_emergency_mode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Emergencia"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/operacion/emergency-off":{"post":{"tags":["Operación"],"summary":"Disable Emergency Mode","description":"Regresa a modo automático los controladores que estaban en emergencia (NOTIFICATIONS=3) y restablece su NOTIFICATIONS a 1.","operationId":"disable_emergency_mode_operacion_emergency_off_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmergenciaOFF"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/estado/save":{"post":{"tags":["Estado"],"summary":"Save Current Sate","description":"Guarda los cambios de estado que presenta Centurión en el transcurso del día. Estos datos son almacenados en base de datos.","operationId":"save_current_sate_estado_save_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Estado"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/estado/save-manual-location":{"post":{"tags":["Estado"],"summary":"Current Position","description":"Guarda la ubicación manual de un controlador específico en base de datos.","operationId":"current_position_estado_save_manual_location_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstadoPos"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/estado/savEMQX":{"post":{"tags":["Estado"],"summary":"Save Current Sate Emqx","operationId":"save_current_sate_emqx_estado_savEMQX_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstadoEMQX"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/estado/operActual":{"get":{"tags":["Estado"],"summary":"Current Operating Mode","description":"Devuelve el modo de operación en que está trabajando actualmente Centurión.","operationId":"current_operating_mode_estado_operActual_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"controlador","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Controlador"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"manual","in":"query","required":true,"schema":{"type":"boolean","title":"Manual"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/relative-individual":{"get":{"tags":["Monitoring"],"summary":"Days","operationId":"days_monitoring_relative_individual_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"dias","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Dias"}},{"name":"format","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/FormatType"}],"default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/absolute-individual":{"get":{"tags":["Monitoring"],"summary":"Analyze By Date Range","operationId":"analyze_by_date_range_monitoring_absolute_individual_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Inicio"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Fin"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"format","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/FormatType"}],"default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/relative-general":{"get":{"tags":["Monitoring"],"summary":"General Report","operationId":"general_report_monitoring_relative_general_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dias","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Dias"}},{"name":"format","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/FormatType"}],"default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/absolute-general":{"get":{"tags":["Monitoring"],"summary":"General Report By Range","operationId":"general_report_by_range_monitoring_absolute_general_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Inicio"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Fin"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"format","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/FormatType"}],"default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/disconnection-analysis-relative":{"get":{"tags":["Monitoring"],"summary":"Disconnection Analysis","operationId":"disconnection_analysis_monitoring_disconnection_analysis_relative_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dias","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Dias"}},{"name":"format","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/FormatType"}],"default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/disconnection-analysis-absolute":{"get":{"tags":["Monitoring"],"summary":"Disconnection Analysis By Range","operationId":"disconnection_analysis_by_range_monitoring_disconnection_analysis_absolute_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Inicio"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Fin"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"format","in":"query","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/FormatType"}],"default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/general-report":{"get":{"tags":["Monitoring"],"summary":"Generate Report","operationId":"generate_report_monitoring_general_report_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dias","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Dias"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/pdf-relative-individual":{"get":{"tags":["Monitoring"],"summary":"Pdf Individual Relativo","description":"Genera PDF con análisis individual de una matrícula para los últimos N días","operationId":"pdf_individual_relativo_monitoring_pdf_relative_individual_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"dias","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Dias"}},{"name":"project_name","in":"query","required":false,"schema":{"type":"string","default":"DEMO","title":"Project Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/pdf-absolute-individual":{"get":{"tags":["Monitoring"],"summary":"Pdf Individual Absoluto","description":"Genera PDF con análisis individual de una matrícula para un rango de fechas específico","operationId":"pdf_individual_absoluto_monitoring_pdf_absolute_individual_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"matricula","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Z]{2}-[A-Z]{2}-[0-9]{2}-[0-9]{4}$","description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","title":"Matricula"},"description":"Matrícula de control a consultar. Formato: TC-CL-24-0001 ","example":"TC-CL-24-0023"},{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Inicio"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Fin"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"project_name","in":"query","required":false,"schema":{"type":"string","default":"DEMO","title":"Project Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/pdf-relative-general":{"get":{"tags":["Monitoring"],"summary":"Pdf General Relativo","description":"Genera PDF con reporte general de todas las matrículas para los últimos N días","operationId":"pdf_general_relativo_monitoring_pdf_relative_general_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"dias","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Dias"}},{"name":"project_name","in":"query","required":false,"schema":{"type":"string","default":"DEMO","title":"Project Name"}},{"name":"Conclusions","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000,"description":"Conclusiones del reporte (máximo 1000 caracteres)","default":"Sin Conclusiones","title":"Conclusions"},"description":"Conclusiones del reporte (máximo 1000 caracteres)","example":"El sistema operó correctamente durante el período analizado."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/monitoring/pdf-absolute-general":{"get":{"tags":["Monitoring"],"summary":"Pdf General Absoluto","description":"Genera PDF con reporte general de todas las matrículas para un rango de fechas específico","operationId":"pdf_general_absoluto_monitoring_pdf_absolute_general_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Inicio"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)Z$","description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","title":"Fecha Fin"},"description":"Fecha y hora en formato ISO 8601 UTC (YYYY-MM-DDTHH:MM:SSZ)","example":"2025-09-22T18:42:00Z"},{"name":"project_name","in":"query","required":false,"schema":{"type":"string","default":"DEMO","title":"Project Name"}},{"name":"Conclusions","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1000,"description":"Conclusiones del reporte (máximo 1000 caracteres)","default":"Sin Conclusiones","title":"Conclusions"},"description":"Conclusiones del reporte (máximo 1000 caracteres)","example":"El sistema operó correctamente durante el período analizado."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/whatsapp/webhook":{"get":{"tags":["WhatsApp Webhook"],"summary":"Verificar Webhook","operationId":"verificar_webhook_whatsapp_webhook_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["WhatsApp Webhook"],"summary":"Recibir Webhook","operationId":"recibir_webhook_whatsapp_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AuthRequest":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"proyecto":{"type":"string","title":"Proyecto"},"origen":{"type":"boolean","title":"Origen"}},"type":"object","required":["email","password","proyecto","origen"],"title":"AuthRequest"},"Body_add_plans_update_agregar_planos_post":{"properties":{"matricula":{"type":"string","title":"Matricula"},"histograma":{"type":"string","format":"binary","title":"Histograma"},"esquema":{"type":"string","format":"binary","title":"Esquema"}},"type":"object","required":["matricula"],"title":"Body_add_plans_update_agregar_planos_post"},"Body_delete_plans_update_borrar_planos_delete":{"properties":{"matricula":{"type":"string","title":"Matricula"},"borrar_histograma":{"type":"boolean","title":"Borrar Histograma","default":false},"borrar_esquema":{"type":"boolean","title":"Borrar Esquema","default":false}},"type":"object","required":["matricula"],"title":"Body_delete_plans_update_borrar_planos_delete"},"Control":{"properties":{"matricula":{"type":"string","title":"Matricula"},"nombre_auxiliar":{"type":"string","title":"Nombre Auxiliar"},"programacion":{"type":"string","title":"Programacion"},"nota":{"type":"string","title":"Nota"},"fecha":{"type":"string","format":"date","title":"Fecha"},"hora":{"type":"string","format":"time","title":"Hora"},"proyecto":{"type":"string","title":"Proyecto"},"latitud":{"type":"string","title":"Latitud"},"longitud":{"type":"string","title":"Longitud"},"interseccion":{"type":"string","title":"Interseccion"}},"type":"object","required":["matricula","nombre_auxiliar","programacion","nota","fecha","hora","proyecto","latitud","longitud","interseccion"],"title":"Control"},"Emergencia":{"properties":{"latitude":{"type":"number","title":"Latitude"},"longitude":{"type":"number","title":"Longitude"},"radius_m":{"type":"integer","title":"Radius M"},"controllers":{"items":{"type":"string"},"type":"array","title":"Controllers"}},"type":"object","required":["latitude","longitude","radius_m","controllers"],"title":"Emergencia"},"EmergenciaOFF":{"properties":{"controllers":{"items":{"type":"string"},"type":"array","title":"Controllers"}},"type":"object","required":["controllers"],"title":"EmergenciaOFF"},"Estado":{"properties":{"matricula":{"type":"string","title":"Matricula"},"estado":{"type":"object","title":"Estado"},"latitud":{"type":"number","title":"Latitud"},"longitud":{"type":"number","title":"Longitud"},"fecha":{"type":"string","format":"date","title":"Fecha"},"hora":{"type":"string","format":"time","title":"Hora"},"descripcion":{"type":"string","title":"Descripcion"}},"type":"object","required":["matricula","estado","latitud","longitud","fecha","hora","descripcion"],"title":"Estado"},"EstadoEMQX":{"properties":{"matricula":{"type":"string","title":"Matricula"},"estado":{"type":"object","title":"Estado"},"latitud":{"type":"number","title":"Latitud"},"longitud":{"type":"number","title":"Longitud"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"}},"type":"object","required":["matricula","estado","latitud","longitud","timestamp"],"title":"EstadoEMQX"},"EstadoPos":{"properties":{"matricula":{"type":"string","title":"Matricula"},"latitud":{"type":"number","title":"Latitud"},"longitud":{"type":"number","title":"Longitud"},"zona":{"type":"integer","title":"Zona"},"interseccion":{"type":"string","title":"Interseccion"}},"type":"object","required":["matricula","latitud","longitud","zona","interseccion"],"title":"EstadoPos"},"FormatType":{"type":"string","enum":["json","csv"],"title":"FormatType"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Local":{"properties":{"matricula":{"type":"string","title":"Matricula"},"usuario":{"type":"string","title":"Usuario"},"prog":{"type":"object","title":"Prog"},"interseccion":{"type":"string","title":"Interseccion"},"nota":{"type":"string","title":"Nota"},"fecha":{"type":"string","format":"date-time","title":"Fecha"}},"type":"object","required":["matricula","usuario","prog","interseccion","nota","fecha"],"title":"Local"},"Modo":{"properties":{"matricula":{"type":"string","title":"Matricula","example":"TC-CL-24-0023"},"modo":{"type":"string","title":"Modo","example":"A"},"usuario":{"type":"string","title":"Usuario","example":"miovision@miovision"}},"type":"object","required":["matricula","modo","usuario"],"title":"Modo"},"Operacion":{"properties":{"matricula":{"type":"string","title":"Matricula","description":"Matrícula de control","example":"TC-CL-24-0023"},"usuario":{"type":"string","title":"Usuario","description":"Usuario que realiza la solicitud","example":"miovision@miovision.com"},"prog":{"type":"object","title":"Prog","description":"Datos de programación","default":{},"example":{}},"interseccion":{"type":"string","title":"Interseccion","description":"Intersección de referencia","example":"Calle 1 y Av. 2"},"nota":{"type":"string","title":"Nota","description":"Comentarios adicionales","example":"Nota importante"},"fecha":{"type":"string","format":"date-time","title":"Fecha","description":"Fecha y hora de la solicitud","example":"2025-06-02T09:22:28"}},"type":"object","required":["matricula","usuario","interseccion","nota","fecha"],"title":"Operacion"},"TipoConsulta":{"type":"string","enum":["Histograma","Esquema"],"title":"TipoConsulta"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"add_user":{"properties":{"nombre":{"type":"string","title":"Nombre"},"ap_pater":{"type":"string","title":"Ap Pater"},"ap_mater":{"type":"string","title":"Ap Mater"},"correo":{"type":"string","title":"Correo"},"rol":{"type":"string","title":"Rol"},"password":{"type":"string","title":"Password"},"proyecto":{"items":{"type":"string"},"type":"array","title":"Proyecto"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notifications":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Notifications"}},"type":"object","required":["nombre","ap_pater","ap_mater","correo","rol","password","proyecto"],"title":"add_user"},"assign_user":{"properties":{"usuario_reg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usuario Reg"},"correo":{"type":"string","title":"Correo"},"proyecto":{"type":"string","title":"Proyecto"}},"type":"object","required":["correo","proyecto"],"title":"assign_user"},"config_eschema":{"properties":{"matricula":{"type":"string","title":"Matricula","example":"TC-CL-24-0023"},"config_scheme":{"type":"object","title":"Config Scheme","example":{"arrows":[{"curvature":0,"id":1764714856163,"length":5.2,"phase":2,"rotation":84,"scale":1,"x":248.65042979942695,"y":1.180945577927588},{"curvature":180,"id":1764714856164,"length":7.7,"phase":2,"rotation":60,"scale":1,"x":317.7707736389685,"y":3.0258493682753684},{"curvature":0,"id":1764714883692,"length":4.5,"phase":6,"rotation":263,"scale":1,"x":547.8166189111748,"y":699.9367382472432},{"curvature":0,"id":1764714941100,"length":4.3,"phase":3,"rotation":171,"scale":1,"x":1047.8223495702005,"y":283.59355328362875}],"exportDate":"2025-12-02T22:36:14.149Z","version":"1.0"}}},"type":"object","required":["matricula","config_scheme"],"title":"config_eschema"},"estadoCliente":{"properties":{"estado":{"type":"boolean","title":"Estado"},"matricula":{"type":"string","title":"Matricula"}},"type":"object","required":["estado","matricula"],"title":"estadoCliente"},"testCenturion":{"properties":{"usuario":{"type":"string","title":"Usuario"},"matricula":{"type":"string","title":"Matricula"}},"type":"object","required":["usuario","matricula"],"title":"testCenturion"},"update_user":{"properties":{"user":{"type":"string","title":"User"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"ap_pater":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ap Pater"},"ap_mater":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ap Mater"},"id_rol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id Rol"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"activo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activo"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"notifications":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Notifications"}},"type":"object","required":["user"],"title":"update_user"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}