3 title: "Sistema de Reservas de Turnos Veterinarios"
5 Esta API permite gestionar un sistema de mascotas, veterinarios y turnos.
8 # ------------------------------------------------
10 # ------------------------------------------------
15 # Rutas para el manejo de especies
16 # --------------------------------
21 summary: "Crear una especie"
22 description: "Se agrega una especie animal al sistema"
23 operationId: "especie-crear"
29 $ref: "#/components/requestBodies/Nombre"
32 description: "Especie creada exitosamente"
36 $ref: "#/components/schemas/Especie"
38 description: "Especie existente"
42 $ref: "#/components/assets/Mensaje"
44 mensaje: "La especie que intenta agregar ya existe"
46 description: "Solicitud invalida"
50 $ref: "#/components/assets/Mensaje"
52 mensaje: "Nombre de especie inválido"
55 summary: "Listar las especies"
56 description: "Se listan las especies cargadas en el sistema."
57 operationId: "especie-listar"
60 description: "Lista de especies disponibles en el sistema"
66 $ref: "#/components/schemas/Especie"
71 summary: "Actualizar una especie"
72 description: "Se actualiza una especie del sistema"
73 operationId: "especie-editar"
77 description: "ID de la especie a actualizar"
80 $ref: "#/components/primitives/Identificador"
87 $ref: "#/components/requestBodies/Nombre"
90 description: "Especie actualizada"
94 $ref: "#/components/schemas/Especie"
96 description: "Especie no encontrada"
100 $ref: "#/components/assets/Mensaje"
102 mensaje: "ID invalido o inexistente"
105 summary: "Eliminar una especie"
106 description: "Se elimina una especie del sistema"
107 operationId: "especie-eliminar"
111 description: "ID de la especie a eliminar"
114 $ref: "#/components/primitives/Identificador"
118 description: "Especie eliminada"
122 $ref: "#/components/schemas/Especie"
124 description: "Especie no encontrada"
128 $ref: "#/components/assets/Mensaje"
130 mensaje: "ID invalido o inexistente"
133 # Rutas para el manejo de veterinarios
134 # ------------------------------------
139 summary: "Crear un veterinario"
140 description: "Se carga un veterinario en el sistema"
141 operationId: "veterinario-crear"
147 $ref: "#/components/requestBodies/Nombre"
150 description: "Veterinario creado exitosamente"
154 $ref: "#/components/schemas/Veterinario"
157 summary: "Listar los veterinarios"
158 description: "Permite listar los veterinarios cargados en el sistema."
159 operationId: "veterinario-listar"
162 description: "Lista de veterinarios disponibles en el sistema"
168 $ref: "#/components/schemas/Veterinario"
173 summary: "Actualiza un veterinario"
174 description: "Se actualiza un veterinario del sistema"
175 operationId: "veterinario-editar"
179 description: "ID del veterinario a actualizar"
182 $ref: "#/components/primitives/Identificador"
189 $ref: "#/components/requestBodies/Nombre"
192 description: "Veterinario actualizado"
196 $ref: "#/components/schemas/Veterinario"
199 summary: "Eliminar un veterinario"
200 description: "Se elimina un veterinario del sistema"
201 operationId: "veterinario-eliminar"
205 description: "ID del veterinario a eliminar"
208 $ref: "#/components/primitives/Identificador"
212 description: "Veterinario eliminado"
216 $ref: "#/components/schemas/Veterinario"
219 # Rutas para el manejo de mascotas
220 # --------------------------------
225 summary: "Crea una mascota"
226 description: "Se carga una mascota al sistema"
227 operationId: "mascota-crear"
234 - $ref: "#/components/requestBodies/Especie"
235 - $ref: "#/components/requestBodies/Nombre"
238 description: "Mascota creada exitosamente"
242 $ref: "#/components/schemas/Mascota"
245 summary: "Lisgtar las mascotas"
246 description: "Se listan las mascotas cargadas en el sistema."
247 operationId: "mascota-listar"
250 description: "Lista de mascotas cargadas en el sistema"
256 $ref: "#/components/schemas/Mascota"
261 summary: "Actualizar una mascota"
262 description: "Se actualiza una mascota del sistema"
263 operationId: "mascota-editar"
267 description: "ID de la mascota a actualizar"
270 $ref: "#/components/primitives/Identificador"
278 - $ref: "#/components/requestBodies/Especie"
279 - $ref: "#/components/requestBodies/Nombre"
282 description: "Mascota actualizada"
286 $ref: "#/components/schemas/Mascota"
289 summary: "Eliminar una mascota"
290 description: "Se elimina una mascota del sistema"
291 operationId: "mascota-eliminar"
295 description: "ID de la mascota a eliminar"
298 $ref: "#/components/primitives/Identificador"
302 description: "Mascota eliminada"
306 $ref: "#/components/schemas/Mascota"
309 # Rutas para el manejo de turnos
310 # ------------------------------
314 summary: "Turnos disponibles"
315 description: "Lista de turnos disponibles"
316 operationId: "turno-disponibles"
319 description: "Lista de turnos disponibles"
325 $ref: "#/components/primitives/FechaHora"
330 summary: "Tomar un turno"
331 description: "Se toma un turno disponible"
332 operationId: "turno-crear"
338 $ref: "#/components/requestBodies/Turno"
341 description: "Turno asignado exitosamente"
345 $ref: "#/components/schemas/Turno"
348 summary: "Listar los turnos"
349 description: "Se listan los turnos asignados"
350 operationId: "turno-listar"
353 description: "Lista de turnos asignados"
359 $ref: "#/components/schemas/TurnoLista"
361 /turno/{turno}/{mascota_id}:
364 summary: "Libera un turno"
365 description: "Se libera un turno tomado en el sistema"
366 operationId: "turno-eliminar"
370 description: "Fecha y hora del turno a liberar"
373 $ref: "#/components/primitives/FechaHora"
376 description: "ID de la mascota asociada al turno a liberar"
379 $ref: "#/components/primitives/Identificador"
383 description: "Turno liberado"
387 $ref: "#/components/schemas/Turno"
389 # ------------------------------------------------
390 # Definición de componentes
391 # ------------------------------------------------
407 pattern: '^(\d{4})(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])T([0-1][0-9]|2[0-4])([0-5][0-9])([0-5][0-9])Z$'
408 description: "Formato personalizado de la fecha y hora del turno ('YYYYMMDDThhmmssZ')"
409 example: "20241231T245959Z"
430 $ref: "#/components/primitives/Identificador"
446 $ref: "#/components/primitives/Identificador"
454 $ref: "#/components/primitives/Identificador"
462 $ref: "#/components/primitives/Identificador"
470 $ref: "#/components/primitives/FechaHora"
479 - $ref: "#/components/assets/Identificador"
480 - $ref: "#/components/assets/Nombre"
484 - $ref: "#/components/assets/Identificador"
485 - $ref: "#/components/assets/Nombre"
489 - $ref: "#/components/assets/Identificador"
490 - $ref: "#/components/assets/EspecieID"
491 - $ref: "#/components/assets/Nombre"
495 - $ref: "#/components/assets/Turno"
496 - $ref: "#/components/assets/MascotaID"
500 - $ref: "#/components/schemas/Turno"
501 - $ref: "#/components/assets/VeterinarioID"
503 # Cuerpos de las solicitudes
504 # --------------------------
509 $ref: "#/components/assets/Nombre"
512 $ref: "#/components/assets/EspecieID"
515 $ref: "#/components/schemas/Turno"