From 16cf0a8d8a66ff2152482aea9f9a07f48f434a5a Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 5 Aug 2019 10:55:05 -0500 Subject: [PATCH] Se actualiza por la versión 0.3.5 --- hercules/hercules.json | 401 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 378 insertions(+), 23 deletions(-) diff --git a/hercules/hercules.json b/hercules/hercules.json index 3d14315..e973dad 100644 --- a/hercules/hercules.json +++ b/hercules/hercules.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "description": "API para catálogo, venta y postventa de servicios en Hércules", - "version": "0.3.4", + "version": "0.3.5", "title": "Hércules API" }, "servers": [ @@ -54,7 +54,7 @@ { "name": "items", "in": "query", - "description": "Flag para enviar los ítems de cada cotización encontrada. \n - true: Envía dentro de cada cotización el detalle de sus ítems\n - false: No envía los ítems", + "description": "Flag para enviar los ítems de cada cotización encontrada.\n - true: Envía dentro de cada cotización el detalle de sus ítems\n - false: No envía los ítems", "required": false, "schema": { "type": "boolean", @@ -75,7 +75,7 @@ { "name": "precios", "in": "query", - "description": "Flag para enviar los precios dentro de cada item de cotización. \n - true: Envía dentro de cada ítem de cotización el detalle de su precio\n - false: No se incluye el precio dentro de los items", + "description": "Flag para enviar los precios dentro de cada item de cotización.\n - true: Envía dentro de cada ítem de cotización el detalle de su precio\n - false: No se incluye el precio dentro de los items", "required": false, "schema": { "type": "boolean", @@ -85,7 +85,7 @@ { "name": "descuentos", "in": "query", - "description": "Flag para enviar los descuentos (aplicados) dentro de cada item de cotización. \n - true: Envía dentro de cada ítem de cotización el detalle de sus descuentos aplicados\n - false: No se incluyen los descuentos dentro de los items", + "description": "Flag para enviar los descuentos (aplicados) dentro de cada item de cotización.\n - true: Envía dentro de cada ítem de cotización el detalle de sus descuentos aplicados\n - false: No se incluyen los descuentos dentro de los items", "required": false, "schema": { "type": "boolean", @@ -155,7 +155,7 @@ { "name": "items", "in": "query", - "description": "Flag para enviar los ítems de cada cotización encontrada. \n - true: Envía dentro de cada cotización el detalle de sus ítems\n - false: No envía los ítems", + "description": "Flag para enviar los ítems de cada cotización encontrada.\n - true: Envía dentro de cada cotización el detalle de sus ítems\n - false: No envía los ítems", "required": false, "schema": { "type": "boolean", @@ -176,7 +176,7 @@ { "name": "precios", "in": "query", - "description": "Flag para enviar los precios dentro de cada item de cotización. \n - true: Envía dentro de cada ítem de cotización el detalle de su precio\n - false: No se incluye el precio dentro de los items", + "description": "Flag para enviar los precios dentro de cada item de cotización.\n - true: Envía dentro de cada ítem de cotización el detalle de su precio\n - false: No se incluye el precio dentro de los items", "required": false, "schema": { "type": "boolean", @@ -186,7 +186,7 @@ { "name": "descuentos", "in": "query", - "description": "Flag para enviar los descuentos (aplicados) dentro de cada item de cotización. \n - true: Envía dentro de cada ítem de cotización el detalle de sus descuentos aplicados\n - false: No se incluyen los descuentos dentro de los items", + "description": "Flag para enviar los descuentos (aplicados) dentro de cada item de cotización.\n - true: Envía dentro de cada ítem de cotización el detalle de sus descuentos aplicados\n - false: No se incluyen los descuentos dentro de los items", "required": false, "schema": { "type": "boolean", @@ -361,7 +361,7 @@ { "name": "items", "in": "query", - "description": "Flag para enviar los ítems de cada cotización encontrada. \n - true: Envía dentro de cada cotización el detalle de sus ítems\n - false: No envía los ítems", + "description": "Flag para enviar los ítems de cada cotización encontrada.\n - true: Envía dentro de cada cotización el detalle de sus ítems\n - false: No envía los ítems", "required": false, "schema": { "type": "boolean", @@ -371,7 +371,7 @@ { "name": "precios", "in": "query", - "description": "Flag para enviar los precios dentro de cada item de cotización. \n - true: Envía dentro de cada ítem de cotización el detalle de su precio\n - false: No se incluye el precio dentro de los items", + "description": "Flag para enviar los precios dentro de cada item de cotización.\n - true: Envía dentro de cada ítem de cotización el detalle de su precio\n - false: No se incluye el precio dentro de los items", "required": false, "schema": { "type": "boolean", @@ -381,7 +381,7 @@ { "name": "descuentos", "in": "query", - "description": "Flag para enviar los descuentos (aplicados) dentro de cada item de cotización. \n - true: Envía dentro de cada ítem de cotización el detalle de sus descuentos aplicados\n - false: No se incluyen los descuentos dentro de los items", + "description": "Flag para enviar los descuentos (aplicados) dentro de cada item de cotización.\n - true: Envía dentro de cada ítem de cotización el detalle de sus descuentos aplicados\n - false: No se incluyen los descuentos dentro de los items", "required": false, "schema": { "type": "boolean", @@ -904,6 +904,15 @@ "type": "integer", "format": "int64" } + }, + { + "name": "idCaracteristica", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int64" + } } ], "post": { @@ -992,11 +1001,97 @@ }, "responses": { "200": { - "description": "Se encontraron servicios", + "description": "Si la persona que realiza la reserva tiene una membresía activa en el sistema, la respuesta contendrá un objeto 'InscripcionReservaPracticaLibre'. En caso contrario la respuesta contendrá un objeto 'Cotizacion'.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cotizacion" + "oneOf": [ + { + "$ref": "#/components/schemas/Cotizacion" + }, + { + "$ref": "#/components/schemas/InscripcionReservaPracticaLibre" + } + ], + "example": { + "id": 542682, + "estado": 1, + "mensaje": "Cotizacion pendiente de pago", + "nombre_titular": "Pedro Pérez Benitez", + "tipo_documento_titular": "CC", + "documento_titular": "1023456789", + "telefono_titular": "320456879", + "direccion_titular": "Calle 8 # 34a - 23 apto 301 Bloque 2", + "email_titular": "cliente@ejemplo.com", + "provedor": "PayU", + "extra": 54523423423, + "extra2": "RA123128532", + "id_participacion_organizacion": 324, + "organizacion": "Individual", + "id_usuario": 8324123, + "usuario": "Juan Camilo Martinez", + "valor_total": 119000, + "valor_impuesto": 19000, + "valor_base": 100000, + "valor_reversion": 45000, + "fecha_creacion": "2018-02-12T15:19:21+00:00", + "fecha_actualizacion": "2018-02-12T15:22:21+00:00", + "expiracion": "2018-11-21T17:32:28", + "transaccion": { + "id": "CUS-123123-432", + "fecha": "2018-02-12T15:22:21+00:00", + "identificador_cajero": "53889001", + "identificador_caja": "PAI023123", + "canal": 3, + "medio_de_pago": { + "codigo_medio_pago": 124, + "valor": 140000, + "consecutivo": 0 + } + }, + "items_cotizacion": [ + { + "nombre": "Juan Gómez García", + "tipo": 1, + "documento": "1023928310", + "valor": 43740, + "impuesto": 10260, + "valor_total": 54000, + "cantidad": 1, + "valor_unitario": 54000, + "descuentos": [ + { + "id": 5451518, + "nombre": "Casa ensamble", + "tipo": 1, + "mercadeo": true, + "valor": 150000, + "codigo": "CAEDF2213" + } + ], + "descripcion": "Plan Tu CUR 1 MES para Juan Gómez García", + "precio": { + "nombre": "Plan Tu Equilibrio 1 Año CAT B", + "iva": 19000, + "base": 100000, + "total": 119000, + "vigencia_inicio": "2018-09-12 13:00.000", + "vigencia_fin": "2018-10-12 13:00.000", + "categoria_precio": "B" + }, + "nombre_precio": "Plan Tu CUR Categoría B Mes", + "codigo_precio": "1232355", + "codigo_centro_beneficios": "5648-12479", + "categoria_precio": "B" + } + ], + "logs_cotizacion": [ + { + "tipo": 1, + "detalles": "Se creo una cotización" + } + ] + } } } } @@ -1507,7 +1602,7 @@ "Catalogo" ], "summary": "Listar las pruebas según los filtros seleccionados", - "description": "Segùn los filtros seleccionados retornara los servicios o pruebas, en el caso de que falte algún filtro se pedira la opción para poder buscar las pruebas. Las opciones que se pueden seleccionar son las siguientes:\n * Documento\n * Antiguedad\n * Clasificación (Curso, Festival, Gimnasio, Práctica Libre, Alquiler de Escenario, Concierto, Taller, etc )\n * Segmento Edad\n * Área\n * Sede\n * Días (Entre Semana / Fin de Semana)\n * Horario (Mañana / Tarde / Noche)\n * Nivel (dentro del plan académico del Curso) /Modalidad \n * Servicio (ESCUELAS, PRACTICA_LIBRE, MATERIAL, PLAN_AFILIACION )\n ", + "description": "Segùn los filtros seleccionados retornara los servicios o pruebas, en el caso de que falte algún filtro se pedira la opción para poder buscar las pruebas. Las opciones que se pueden seleccionar son las siguientes:\n * Documento\n * Antiguedad\n * Clasificación (Curso, Festival, Gimnasio, Práctica Libre, Alquiler de Escenario, Concierto, Taller, etc )\n * Segmento Edad\n * Área\n * Sede\n * Días (Entre Semana / Fin de Semana)\n * Horario (Mañana / Tarde / Noche)\n * Nivel (dentro del plan académico del Curso) /Modalidad \n * Servicio (ESCUELAS, PRACTICA_LIBRE, MATERIAL, PLAN_AFILIACION )", "operationId": "getCatalogo", "requestBody": { "content": { @@ -1736,6 +1831,57 @@ "format": "date-time", "example": "2018-10-02T10:00:00" }, + "sede": { + "type": "string", + "description": "Nombre de la sede donde se lleva a cabo el servicio", + "example": "Sede Club Privado" + }, + "escenario": { + "type": "string", + "description": "Nombre del escenario dentro de la sede donde se lleva a cabo el servicio", + "example": "Canchas de Polo" + }, + "zona": { + "type": "string", + "description": "Nombre de la zona dentro del escenario donde se lleva acabo el servicio", + "example": "Cancha No 1" + }, + "asistencia": { + "description": "Flag que indica si asistió o no", + "type": "string", + "example": "1" + }, + "caracteristicas": { + "type": "array", + "description": "Características que contempla la zona", + "items": { + "type": "object", + "properties": { + "nombre": { + "description": "Nombre de la característica", + "type": "string", + "example": "Clase de aeróbicos" + }, + "id_zona": { + "description": "Id de la zona a la que pertenece la característica", + "type": "string", + "example": "83" + }, + "id_centro_entrenamiento": { + "description": "Id del centro entrenamiento que contempla la zona y característica relacionada", + "type": "string", + "example": "103" + } + } + }, + "example": [ + { + "nombre": "Clase de Aeróbicos", + "id_zona": "83", + "id_centro_entrenamiento": "103" + } + ] + }, "persona": { "$ref": "#/components/schemas/Persona" }, @@ -1839,6 +1985,82 @@ } } } + }, + "/consultar/suscripciones/{documento}": { + "parameters": [ + { + "name": "documento", + "in": "path", + "required": true, + "description": "Documento de la persona que consulta sus suscripciones", + "schema": { + "$ref": "#/components/schemas/Documento" + } + }, + { + "name": "tipoDocumento", + "in": "query", + "description": "Tipo de documento de la persona que consulta sus suscripciones", + "schema": { + "$ref": "#/components/schemas/TipoDocumento" + } + }, + { + "name": "incluirVencidos", + "in": "query", + "schema": { + "description": "Flag para consultar las suscripciones sin vigencia de la persona\n - true: Se incluyen las suscripciones sin vigencia\n - false: No se incluyen las suscripciones sin vigencia", + "type": "boolean", + "default": false + }, + "required": false + } + ], + "get": { + "tags": [ + "Catalogo" + ], + "summary": "Consultar las suscripciones de una persona", + "description": "Función para consultar las suscripciones vigentes o históricas de los planes de afiliación", + "operationId": "consultarSuscripciones", + "responses": { + "200": { + "description": "Consulta Exitosa", + "content": { + "application/json": { + "schema": { + "description": "Colección que contiene las suscripciones asociadas al número y tipo de documento", + "type": "object", + "properties": { + "suscripciones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Suscripcion" + } + } + } + } + } + } + }, + "401": { + "description": "No autorizado" + }, + "404": { + "description": "persona no encontrada en el sistema", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "500": { + "description": "Error interno" + } + } + } } }, "components": { @@ -1878,6 +2100,57 @@ } } }, + "Afiliacion": { + "type": "object", + "properties": { + "id_centro_entrenamiento": { + "type": "integer", + "format": "int64", + "example": 11 + }, + "centro_entrenamiento": { + "type": "string", + "example": "Gimnasio" + }, + "fecha_inicio": { + "type": "string", + "format": "date-time" + }, + "fecha_fin": { + "type": "string", + "format": "date-time" + }, + "estado": { + "type": "integer", + "description": "Parámetro para saber el estado de la afiliación dentro de su ciclo de vida.\nLos estados son los siguientes:\n - 0) CANCELADA\n - 1) ACTIVA\n - 2) ADQUIRIDA\n - 3) TERMINADA", + "format": "int32", + "example": 1, + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "entradas": { + "type": "integer", + "format": "int64", + "example": 30 + }, + "principal": { + "type": "boolean", + "example": true + }, + "medico": { + "type": "boolean", + "example": true + }, + "validar_afiliacion": { + "type": "boolean", + "example": true + } + } + }, "BeneficioSuscripcion": { "type": "object", "properties": { @@ -1929,7 +2202,7 @@ }, "CategoriaPrecioServicio": { "type": "object", - "description": "Objeto con la información del precio para un servicio asociado a cierta categoría independiente de persona (con los mejores descuentos no sujetos a condiciones de audiencia)", + "description": "Objeto con la información del precio para un servicio asociado a cierta categoría independiente de persona (con los mejores descuentos no sujetos a condiciones de audiencia)", "properties": { "categoria": { "type": "string", @@ -2273,7 +2546,7 @@ "type": "object", "properties": { "codigo": { - "description": "Codigo de error:\n\n * -1 ) No se encontró la cotización\n * -2 ) El material no existe o no es valido\n * -3 ) El parametro no corresponde a un dato válido o no ha sido encontrado\n * -4 ) Documento inválido\n * -5 ) No se encontró el servicio\n * -6 ) La información enviada para actualizar es invalida \n * -7 ) El centro de entrenamiento no existe\n * -8 ) El turno no existe\n * -9 ) No se encontró a la persona\n * -10 ) El tipo de documento especificado no se encuentra en la lista de tipos de documentos válidos\n * -11 ) No se encontro el item\n * -12 ) Fechas invalidas\n * -13 ) Error de inscripción\n * -999 ) Error Interno", + "description": "Codigo de error:\n * -1 ) No se encontró la cotización\n * -2 ) El material no existe o no es valido\n * -3 ) El parametro no corresponde a un dato válido o no ha sido encontrado\n * -4 ) Documento inválido\n * -5 ) No se encontró el servicio\n * -6 ) La información enviada para actualizar es inválida\n * -7 ) El centro de entrenamiento no existe\n * -8 ) El turno no existe\n * -9 ) No se encontró a la persona\n * -10 ) El tipo de documento especificado no se encuentra en la lista de tipos de documentos válidos\n * -11 ) No se encontro el item\n * -12 ) Fechas inválidas\n * -13 ) Error de inscripción\n * -14 ) La persona ya se encuentra inscrita en la prueba\n * -15 ) No existe un precio para el servicio\n * -16 ) No se reconoce el tipo de servicio\n * -17 ) La información relacionada en el body, no coincide con la información relacionada en el path\n * -999 ) Error Interno", "type": "integer", "format": "int64", "enum": [ @@ -2290,6 +2563,10 @@ -11, -12, -13, + -14, + -15, + -16, + -17, -999 ], "example": -13 @@ -2396,6 +2673,17 @@ "format": "int64", "example": 7 }, + "precio": { + "description": "Precio asociado a la práctica libre, para la categoría A", + "type": "string", + "format": "string", + "example": 67226.89 + }, + "temporada": { + "description": "Temporada de acuerdo a la plantilla asociada al centro de entrenamiento", + "type": "string", + "example": "Alta" + }, "zonas": { "description": "Zonas en donde hay disponibilidad (los cupos se reparten en estas zonas)", "type": "array", @@ -2466,7 +2754,7 @@ "fecha_inicio": { "type": "string", "format": "date-time", - "example": "2018-10-08T15:00" + "example": "2018-10-08T15:00:00" }, "informacion_compra_material": { "$ref": "#/components/schemas/InformacionCompraMaterial" @@ -2803,13 +3091,13 @@ "description": "Fecha de inicio de la vigencia del precio", "type": "string", "format": "date-time", - "example": "2018-09-12 13:00.000" + "example": "2018-09-12T13:00:00" }, "vigencia_fin": { "description": "Fecha de fin de la vigencia del precio", "type": "string", "format": "date-time", - "example": "2018-10-12 13:00.000" + "example": "2018-10-12T13:00:00" }, "categoria_precio": { "description": "Nombre de la categoría de precio", @@ -3193,6 +3481,44 @@ } } }, + "Suscripcion": { + "type": "object", + "properties": { + "id_plan_afiliacion": { + "type": "integer", + "format": "int64", + "example": 3654 + }, + "nombre": { + "type": "string", + "example": "Gimnasio un mes" + }, + "cantidad_aplazamientos": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "duracion_aplazamientos": { + "type": "integer", + "format": "int64", + "example": 15 + }, + "principal": { + "type": "boolean", + "example": true + }, + "medico": { + "type": "boolean", + "example": true + }, + "afiliaciones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Afiliacion" + } + } + } + }, "Transaccion": { "description": "Propiedades de la transacción de pago de una cotización", "type": "object", @@ -3232,6 +3558,8 @@ ] }, "medio_de_pago": { + "type": "array", + "items": null, "$ref": "#/components/schemas/MedioDePago" } } @@ -3287,11 +3615,7 @@ }, "persona": { "description": "Persona que tiene la tiquetera o a la que se quiere asociar el turno de práctica libre", - "allOf": [ - { - "$ref": "#/components/schemas/Persona" - } - ] + "$ref": "#/components/schemas/Persona" }, "materiales": { "description": "Lista de los materiales para le turno de practica libre", @@ -3339,6 +3663,37 @@ "description": "Nombre de la zona", "type": "string", "example": "Cancha 1" + }, + "caracteristicas": { + "type": "array", + "description": "Características que contempla la zona", + "items": { + "type": "object", + "properties": { + "nombre": { + "description": "Nombre de la característica", + "type": "string", + "example": "Clase de aeróbicos" + }, + "id_zona": { + "description": "Id de la zona a la que pertenece la característica", + "type": "string", + "example": "83" + }, + "id_centro_entrenamiento": { + "description": "Id del centro entrenamiento que contempla la zona y característica relacionada", + "type": "string", + "example": "103" + } + } + }, + "example": [ + { + "nombre": "Clase de Aeróbicos", + "id_zona": "83", + "id_centro_entrenamiento": "103" + } + ] } } } -- libgit2 0.26.0