{
    "openapi": "3.0.0",
    "info": {
        "title": "API Cart",
        "version": "1.0"
    },
    "servers": [
        {
            "url": "http://www.dev.catalogo-mateo.com/Catalogo-RJT/BackEndClienteON/Tronco/public"
        }
    ],
    "paths": {
        "/api/carrito/{id_cliente}": {
            "get": {
                "tags": [
                    "carrito"
                ],
                "summary": "Obtener carrito",
                "operationId": "c8f6a25b5216badead605a9c31d8c693",
                "parameters": [
                    {
                        "name": "id_cliente",
                        "in": "path",
                        "description": "ID del cliente",
                        "required": true,
                        "example": "13284"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Carrito del cliente."
                    }
                }
            }
        },
        "/api/carrito": {
            "put": {
                "tags": [
                    "carrito"
                ],
                "summary": "Actualizar producto del carrito",
                "operationId": "d31e014d2f3c597cbfdbe3f334e2c48c",
                "requestBody": {
                    "description": "Información del producto a actualizar",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id_cliente",
                                    "id_producto",
                                    "cantidad"
                                ],
                                "properties": {
                                    "id_cliente": {
                                        "example": "13284"
                                    },
                                    "id_producto": {
                                        "example": "78"
                                    },
                                    "cantidad": {
                                        "example": "2"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true"
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            },
            "post": {
                "tags": [
                    "carrito"
                ],
                "summary": "Agregar producto al carrito",
                "operationId": "5f7cbb41230ec347b377cde28ebc44eb",
                "requestBody": {
                    "description": "Información del producto",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id_cliente",
                                    "id_producto",
                                    "nombre",
                                    "codigo",
                                    "imagen",
                                    "precio",
                                    "cantidad"
                                ],
                                "properties": {
                                    "id_cliente": {
                                        "example": "13284"
                                    },
                                    "id_producto": {
                                        "example": "78"
                                    },
                                    "codigo": {
                                        "example": "78456"
                                    },
                                    "nombre": {
                                        "example": "Articulo 78"
                                    },
                                    "imagen": {
                                        "example": "http://www.dev.catalogo.com:80/catalogoBase2021/Tronco/imagenes/0000000626.jpg"
                                    },
                                    "precio": {
                                        "example": "1234.50"
                                    },
                                    "cantidad": {
                                        "example": "2"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true"
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            },
            "delete": {
                "tags": [
                    "carrito"
                ],
                "summary": "Eliminar producto del carrito",
                "operationId": "41ee3f416c5c38cc45c66fc34698da9e",
                "requestBody": {
                    "description": "ID del cliente e ID del producto a eliminar",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id_cliente",
                                    "id_producto"
                                ],
                                "properties": {
                                    "id_cliente": {
                                        "example": "13284"
                                    },
                                    "id_producto": {
                                        "example": "78"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true"
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            }
        },
        "/api/carrito/vaciar": {
            "delete": {
                "tags": [
                    "carrito"
                ],
                "summary": "Eliminar carrito de un cliente",
                "operationId": "97a6a0db54dd00a38f4294423e86e683",
                "requestBody": {
                    "description": "ID del cliente",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id_cliente"
                                ],
                                "properties": {
                                    "id_cliente": {
                                        "example": "13284"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true"
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            }
        },
        "/api/config": {
            "get": {
                "tags": [
                    "configuración"
                ],
                "summary": "Obtener configuración",
                "operationId": "cf25900442e5a0cd90db1a9fdeea9c61",
                "responses": {
                    "200": {
                        "description": "Json de configuración."
                    }
                }
            },
            "put": {
                "tags": [
                    "configuración"
                ],
                "summary": "Obtener configuración",
                "operationId": "beab7d05b324b8c84c89753dfe8a776e",
                "requestBody": {
                    "description": "Json con la nueva configuración. Sin estructura definida",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {}
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true"
                    },
                    "401": {
                        "description": "No autorizado"
                    }
                },
                "security": [
                    {
                        "bearer_token": []
                    }
                ]
            }
        },
        "/api/email/order": {
            "post": {
                "tags": [
                    "email"
                ],
                "summary": "Email nuevo pedido",
                "operationId": "af93defa6f940eca2c64a89b8a2c416f",
                "requestBody": {
                    "description": "Datos del email. En caso de ser invitado=true, se debe pasar un arreglo de productos en 'items'",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id_cliente",
                                    "numero_pedido",
                                    "total",
                                    "email",
                                    "nombre",
                                    "invitado"
                                ],
                                "properties": {
                                    "id_cliente": {
                                        "example": "13284"
                                    },
                                    "numero_pedido": {
                                        "example": "225698"
                                    },
                                    "total": {
                                        "example": "95.71"
                                    },
                                    "email": {
                                        "example": "mateovieyra8@gmail.com"
                                    },
                                    "nombre": {
                                        "example": "mateo"
                                    },
                                    "link_mp": {
                                        "example": ""
                                    },
                                    "invitado": {
                                        "example": false
                                    },
                                    "items": {
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true."
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            }
        },
        "/api/email/recover": {
            "post": {
                "tags": [
                    "email"
                ],
                "summary": "Email recuperar contraseña",
                "operationId": "a10f1b53877937d64b37cb134f932bc4",
                "requestBody": {
                    "description": "Datos del email",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "usuario",
                                    "clave "
                                ],
                                "properties": {
                                    "email": {
                                        "example": "mateovieyra8@gmail.com"
                                    },
                                    "usuario": {
                                        "example": "mateovieyra25"
                                    },
                                    "clave": {
                                        "example": "2222233455"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true."
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            }
        },
        "/api/email/register": {
            "post": {
                "tags": [
                    "email"
                ],
                "summary": "Email registro nuevo cliente",
                "operationId": "1644846f942d1d44133b3dba774d64ad",
                "requestBody": {
                    "description": "Datos del email",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "codigo_cliente",
                                    "nombre_cliente",
                                    "email",
                                    "usuario_web"
                                ],
                                "properties": {
                                    "codigo_cliente": {
                                        "example": "222334"
                                    },
                                    "nombre_cliente": {
                                        "example": "sergio"
                                    },
                                    "email": {
                                        "example": "ascardozo830@gmail.com"
                                    },
                                    "usuario_web": {
                                        "example": "sergio"
                                    },
                                    "codigo_cupon": {
                                        "example": ""
                                    },
                                    "valor_cupon": {
                                        "example": ""
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true."
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            }
        },
        "/api/auth/login": {
            "post": {
                "tags": [
                    "auth admin"
                ],
                "summary": "Login admin configuración",
                "operationId": "c892c67ff720b052f4938dad1c5f0103",
                "requestBody": {
                    "description": "Email y password",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "example": "admin@admin.com"
                                    },
                                    "password": {
                                        "example": "revilo"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Informacion del admin y access token."
                    },
                    "400": {
                        "description": "Status false. Email o password incorrectos"
                    }
                }
            }
        },
        "/api/auth/logout": {
            "post": {
                "tags": [
                    "auth admin"
                ],
                "summary": "Logout admin configuración",
                "operationId": "7a5b019769a6e38a20fe3db33e9c93e8",
                "requestBody": {
                    "description": "ID user",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id_user"
                                ],
                                "properties": {
                                    "id_user": {
                                        "example": "2"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Status true."
                    },
                    "400": {
                        "description": "Status false. Array de errores"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearer_token": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        []
    ]
}