// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs

import "github.com/swaggo/swag"

const docTemplate = `{
    "schemes": {{ marshal .Schemes }},
    "swagger": "2.0",
    "info": {
        "description": "{{escape .Description}}",
        "title": "{{.Title}}",
        "contact": {
            "name": "Engenharia SaveInMed",
            "email": "devops@saveinmed.com"
        },
        "version": "{{.Version}}"
    },
    "host": "{{.Host}}",
    "basePath": "{{.BasePath}}",
    "paths": {
        "/api/v1/auth/login": {
            "post": {
                "description": "Realiza login e retorna token JWT.\n**Credenciais Padrão (Master):**\nEmail: ` + "`" + `andre.fr93@gmail.com` + "`" + `\nSenha: ` + "`" + `teste1234` + "`" + `",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Autenticação de usuário",
                "parameters": [
                    {
                        "description": "Credenciais",
                        "name": "login",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.loginRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.authResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/logout": {
            "post": {
                "description": "Endpoint para logout (invalidação client-side).",
                "tags": [
                    "Autenticação"
                ],
                "summary": "Logout",
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/auth/me": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Obter dados do usuário logado",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.User"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/password/forgot": {
            "post": {
                "description": "Gera um token de redefinição de senha.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Solicitar redefinição de senha",
                "parameters": [
                    {
                        "description": "Email do usuário",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.forgotPasswordRequest"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Accepted",
                        "schema": {
                            "$ref": "#/definitions/handler.resetTokenResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/password/reset": {
            "post": {
                "description": "Atualiza a senha usando o token de redefinição.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Redefinir senha",
                "parameters": [
                    {
                        "description": "Token e nova senha",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.resetPasswordRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.messageResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/refresh-token": {
            "post": {
                "description": "Gera um novo JWT a partir de um token válido.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Atualizar token",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.authResponse"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/register": {
            "post": {
                "description": "Cria um usuário e opcionalmente uma empresa, retornando token JWT.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Cadastro de usuário",
                "parameters": [
                    {
                        "description": "Dados do usuário e empresa",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.registerAuthRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.authResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/register/customer": {
            "post": {
                "description": "Cria um usuário do tipo cliente e opcionalmente uma empresa, retornando token JWT.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Cadastro de cliente",
                "parameters": [
                    {
                        "description": "Dados do usuário e empresa",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.registerAuthRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.authResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/register/tenant": {
            "post": {
                "description": "Cria um usuário do tipo tenant e opcionalmente uma empresa, retornando token JWT.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Cadastro de tenant",
                "parameters": [
                    {
                        "description": "Dados do usuário e empresa",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.registerAuthRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/handler.authResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/auth/verify-email": {
            "post": {
                "description": "Marca o email como verificado usando um token JWT.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Autenticação"
                ],
                "summary": "Verificar email",
                "parameters": [
                    {
                        "description": "Token de verificação",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.verifyEmailRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.messageResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/cart": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Carrinho"
                ],
                "summary": "Obter carrinho",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.CartSummary"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Carrinho"
                ],
                "summary": "Atualizar carrinho completo",
                "parameters": [
                    {
                        "description": "Itens do carrinho",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/handler.addCartItemRequest"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.CartSummary"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Carrinho"
                ],
                "summary": "Adicionar item ao carrinho",
                "parameters": [
                    {
                        "description": "Item do carrinho",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.addCartItemRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.CartSummary"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/cart/{id}": {
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Carrinho"
                ],
                "summary": "Remover item do carrinho",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Cart item ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.CartSummary"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/categorias": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Listar categorias",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/companies": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Lista empresas",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/domain.Company"
                            }
                        }
                    }
                }
            },
            "post": {
                "description": "Cadastra farmácia, distribuidora ou administrador com CNPJ e licença sanitária.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Registro de empresas",
                "parameters": [
                    {
                        "description": "Dados da empresa",
                        "name": "company",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.registerCompanyRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.Company"
                        }
                    }
                }
            }
        },
        "/api/v1/companies/me": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Obter minha empresa",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Company"
                        }
                    }
                }
            }
        },
        "/api/v1/companies/{id}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Obter empresa",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Company"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Empresas"
                ],
                "summary": "Remover empresa",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "patch": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Atualizar empresa",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Campos para atualização",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateCompanyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Company"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/companies/{id}/rating": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Obter avaliação da empresa",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.CompanyRating"
                        }
                    }
                }
            }
        },
        "/api/v1/companies/{id}/verify": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Empresas"
                ],
                "summary": "Verificar empresa",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Company ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Company"
                        }
                    }
                }
            }
        },
        "/api/v1/dashboard": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Get dashboard data for the authenticated user (Admin or Seller)",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Dashboard"
                ],
                "summary": "Get dashboard data",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/enderecos": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Endereços"
                ],
                "summary": "Listar endereços do usuário",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/domain.Address"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Endereços"
                ],
                "summary": "Criar novo endereço",
                "parameters": [
                    {
                        "description": "Dados do endereço",
                        "name": "address",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createAddressRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.Address"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/inventory": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Estoque"
                ],
                "summary": "Listar estoque",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Dias para expiração",
                        "name": "expires_in_days",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/domain.InventoryItem"
                            }
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Estoque"
                ],
                "summary": "Adicionar item ao estoque (venda)",
                "parameters": [
                    {
                        "description": "Inventory Data",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.registerInventoryRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.InventoryItem"
                        }
                    }
                }
            }
        },
        "/api/v1/inventory/adjust": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Estoque"
                ],
                "summary": "Ajustar estoque",
                "parameters": [
                    {
                        "description": "Ajuste de estoque",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.inventoryAdjustRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.InventoryItem"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/laboratorios": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Listar fabricantes (laboratórios)",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/marketplace/records": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Marketplace"
                ],
                "summary": "Busca avançada no marketplace",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Busca textual",
                        "name": "query",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Campo de ordenação (created_at|updated_at)",
                        "name": "sort_by",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Direção (asc|desc)",
                        "name": "sort_order",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Data mínima (RFC3339)",
                        "name": "created_after",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Data máxima (RFC3339)",
                        "name": "created_before",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Página",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Itens por página",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ProductPaginationResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/orders": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pedidos"
                ],
                "summary": "Listar pedidos",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/domain.Order"
                            }
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pedidos"
                ],
                "summary": "Criação de pedido com split",
                "parameters": [
                    {
                        "description": "Pedido",
                        "name": "order",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrderRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.Order"
                        }
                    }
                }
            }
        },
        "/api/v1/orders/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pedidos"
                ],
                "summary": "Consulta pedido",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Order"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pedidos"
                ],
                "summary": "Atualizar itens do pedido",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Novos dados (itens)",
                        "name": "order",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createOrderRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Order"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Pedidos"
                ],
                "summary": "Remover pedido",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/orders/{id}/payment": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pagamentos"
                ],
                "summary": "Cria preferência de pagamento Mercado Pago com split nativo",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.PaymentPreference"
                        }
                    }
                }
            }
        },
        "/api/v1/orders/{id}/reorder": {
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Carrinho"
                ],
                "summary": "Comprar novamente",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    }
                }
            }
        },
        "/api/v1/orders/{id}/status": {
            "patch": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pedidos"
                ],
                "summary": "Atualiza status do pedido",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Novo status",
                        "name": "status",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateStatusRequest"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": ""
                    }
                }
            }
        },
        "/api/v1/payments/webhook": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pagamentos"
                ],
                "summary": "Recebe notificações do Mercado Pago",
                "parameters": [
                    {
                        "description": "Evento do gateway",
                        "name": "notification",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.PaymentWebhookEvent"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.PaymentSplitResult"
                        }
                    }
                }
            }
        },
        "/api/v1/payments/webhook/asaas": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pagamentos"
                ],
                "summary": "Recebe notificações do Asaas",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/payments/webhook/stripe": {
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Pagamentos"
                ],
                "summary": "Recebe notificações do Stripe",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/products": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Lista catálogo com lote e validade",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/domain.Product"
                            }
                        }
                    }
                }
            },
            "post": {
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Cadastro de produto com rastreabilidade de lote",
                "parameters": [
                    {
                        "description": "Produto",
                        "name": "product",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.registerProductRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.Product"
                        }
                    }
                }
            }
        },
        "/api/v1/products/search": {
            "get": {
                "description": "Retorna produtos ordenados por validade, com distância aproximada. Vendedor anônimo até checkout.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Busca avançada de produtos com filtros e distância",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Termo de busca",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Preço mínimo em centavos",
                        "name": "min_price",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Preço máximo em centavos",
                        "name": "max_price",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Distância máxima em km",
                        "name": "max_distance",
                        "in": "query"
                    },
                    {
                        "type": "number",
                        "description": "Latitude do comprador",
                        "name": "lat",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "number",
                        "description": "Longitude do comprador",
                        "name": "lng",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "Página",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Itens por página",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ProductSearchPage"
                        }
                    }
                }
            }
        },
        "/api/v1/products/{id}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Obter produto",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Product"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Produtos"
                ],
                "summary": "Remover produto",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Product ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": ""
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/produtos-catalogo/codigo-ean/{ean}": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Produtos"
                ],
                "summary": "Buscar produto por EAN",
                "parameters": [
                    {
                        "type": "string",
                        "description": "EAN Code",
                        "name": "ean",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Product"
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/reviews": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Returns reviews. Admins see all, Tenants see only their own.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Reviews"
                ],
                "summary": "List reviews",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Página",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Tamanho da página",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ReviewPage"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Avaliações"
                ],
                "summary": "Criar avaliação",
                "parameters": [
                    {
                        "description": "Dados da avaliação",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createReviewRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.Review"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/shipments": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "description": "Returns shipments. Admins see all, Tenants see only their own.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Shipments"
                ],
                "summary": "List shipments",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Página",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Tamanho da página",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ShipmentPage"
                        }
                    },
                    "401": {
                        "description": "Unauthorized",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Logistica"
                ],
                "summary": "Gera guia de postagem/transporte",
                "parameters": [
                    {
                        "description": "Dados de envio",
                        "name": "shipment",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createShipmentRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.Shipment"
                        }
                    }
                }
            }
        },
        "/api/v1/shipments/{order_id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Logistica"
                ],
                "summary": "Rastreia entrega",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Order ID",
                        "name": "order_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Shipment"
                        }
                    }
                }
            }
        },
        "/api/v1/shipping/calculate": {
            "post": {
                "description": "Calculates shipping or pickup options based on vendor config and buyer location.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Shipping"
                ],
                "summary": "Calculate shipping options",
                "parameters": [
                    {
                        "description": "Calculation inputs",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.shippingCalculateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/domain.ShippingOption"
                            }
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/shipping/settings/{vendor_id}": {
            "get": {
                "description": "Returns pickup and delivery settings for a vendor.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Shipping"
                ],
                "summary": "Get vendor shipping settings",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Vendor ID",
                        "name": "vendor_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ShippingSettings"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "put": {
                "description": "Stores pickup and delivery settings for a vendor.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Shipping"
                ],
                "summary": "Update vendor shipping settings",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Vendor ID",
                        "name": "vendor_id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Shipping settings",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.shippingSettingsRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ShippingSettings"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/team": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Equipe"
                ],
                "summary": "Listar membros da equipe",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.UserPage"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Equipe"
                ],
                "summary": "Adicionar membro à equipe",
                "parameters": [
                    {
                        "description": "Dados do usuário (email, name, role)",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.User"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.User"
                        }
                    }
                }
            }
        },
        "/api/v1/users": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Usuários"
                ],
                "summary": "Listar usuários",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "Página",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "Tamanho da página",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Filtro por empresa",
                        "name": "company_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.UserPage"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Usuários"
                ],
                "summary": "Criar usuário",
                "parameters": [
                    {
                        "description": "Novo usuário",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.createUserRequest"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/domain.User"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/users/{id}": {
            "get": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Usuários"
                ],
                "summary": "Obter usuário",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.User"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Usuários"
                ],
                "summary": "Atualizar usuário",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Campos para atualização",
                        "name": "payload",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/handler.updateUserRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.User"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "BearerAuth": []
                    }
                ],
                "tags": [
                    "Usuários"
                ],
                "summary": "Excluir usuário",
                "parameters": [
                    {
                        "type": "string",
                        "description": "User ID",
                        "name": "id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "description": "Forbidden",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "404": {
                        "description": "Not Found",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "domain.Address": {
            "type": "object",
            "properties": {
                "bairro": {
                    "type": "string"
                },
                "cep": {
                    "type": "string"
                },
                "cidade": {
                    "type": "string"
                },
                "complemento": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "entity_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "logradouro": {
                    "type": "string"
                },
                "longitude": {
                    "type": "number"
                },
                "numero": {
                    "type": "string"
                },
                "titulo": {
                    "type": "string"
                },
                "uf": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.CartItem": {
            "type": "object",
            "properties": {
                "batch": {
                    "type": "string"
                },
                "buyer_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "product_id": {
                    "type": "string"
                },
                "product_name": {
                    "type": "string"
                },
                "quantity": {
                    "type": "integer"
                },
                "unit_cents": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.CartSummary": {
            "type": "object",
            "properties": {
                "discount_cents": {
                    "type": "integer"
                },
                "discount_reason": {
                    "type": "string"
                },
                "id": {
                    "description": "Virtual Cart ID (equals BuyerID)",
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.CartItem"
                    }
                },
                "subtotal_cents": {
                    "type": "integer"
                },
                "total_cents": {
                    "type": "integer"
                }
            }
        },
        "domain.Company": {
            "type": "object",
            "properties": {
                "category": {
                    "description": "farmacia, distribuidora",
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "cnpj": {
                    "type": "string"
                },
                "corporate_name": {
                    "type": "string"
                },
                "created_at": {
                    "description": "Timestamps",
                    "type": "string"
                },
                "credit_limit_cents": {
                    "description": "Credit Lines (Boleto a Prazo)",
                    "type": "integer"
                },
                "credit_used_cents": {
                    "description": "currently in use",
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "is_24_hours": {
                    "type": "boolean"
                },
                "is_verified": {
                    "type": "boolean"
                },
                "latitude": {
                    "description": "Location",
                    "type": "number"
                },
                "license_number": {
                    "type": "string"
                },
                "longitude": {
                    "type": "number"
                },
                "operating_hours": {
                    "description": "e.g. \"Seg-Sex: 08:00-18:00, Sab: 08:00-12:00\"",
                    "type": "string"
                },
                "phone": {
                    "description": "Contact \u0026 Hours",
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.CompanyRating": {
            "type": "object",
            "properties": {
                "average_score": {
                    "type": "number"
                },
                "company_id": {
                    "type": "string"
                },
                "total_reviews": {
                    "type": "integer"
                }
            }
        },
        "domain.InventoryItem": {
            "type": "object",
            "properties": {
                "batch": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "expires_at": {
                    "description": "data_validade",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "nome": {
                    "description": "Added for frontend display",
                    "type": "string"
                },
                "observations": {
                    "type": "string"
                },
                "product_id": {
                    "description": "catalogo_id",
                    "type": "string"
                },
                "sale_price_cents": {
                    "description": "preco_venda",
                    "type": "integer"
                },
                "seller_id": {
                    "description": "empresa_id",
                    "type": "string"
                },
                "stock_quantity": {
                    "description": "qtdade_estoque",
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.Order": {
            "type": "object",
            "properties": {
                "buyer_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "distance_km": {
                    "description": "Adicionado",
                    "type": "number"
                },
                "id": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.OrderItem"
                    }
                },
                "payment_method": {
                    "$ref": "#/definitions/domain.PaymentMethod"
                },
                "seller_id": {
                    "type": "string"
                },
                "shipping": {
                    "$ref": "#/definitions/domain.ShippingAddress"
                },
                "shipping_fee_cents": {
                    "description": "Adicionado",
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/domain.OrderStatus"
                },
                "total_cents": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.OrderItem": {
            "type": "object",
            "properties": {
                "batch": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "order_id": {
                    "type": "string"
                },
                "product_id": {
                    "type": "string"
                },
                "quantity": {
                    "type": "integer"
                },
                "unit_cents": {
                    "type": "integer"
                }
            }
        },
        "domain.OrderStatus": {
            "type": "string",
            "enum": [
                "Pendente",
                "Pago",
                "Faturado",
                "Enviado",
                "Entregue",
                "Concluído",
                "Cancelado"
            ],
            "x-enum-varnames": [
                "OrderStatusPending",
                "OrderStatusPaid",
                "OrderStatusInvoiced",
                "OrderStatusShipped",
                "OrderStatusDelivered",
                "OrderStatusCompleted",
                "OrderStatusCancelled"
            ]
        },
        "domain.PaymentMethod": {
            "type": "string",
            "enum": [
                "pix",
                "credit_card",
                "debit_card"
            ],
            "x-enum-varnames": [
                "PaymentMethodPix",
                "PaymentMethodCredit",
                "PaymentMethodDebit"
            ]
        },
        "domain.PaymentPreference": {
            "type": "object",
            "properties": {
                "commission_pct": {
                    "type": "number"
                },
                "gateway": {
                    "type": "string"
                },
                "marketplace_fee": {
                    "type": "integer"
                },
                "order_id": {
                    "type": "string"
                },
                "payment_id": {
                    "type": "string"
                },
                "payment_url": {
                    "type": "string"
                },
                "seller_receivable": {
                    "type": "integer"
                }
            }
        },
        "domain.PaymentSplitResult": {
            "type": "object",
            "properties": {
                "marketplace_fee": {
                    "type": "integer"
                },
                "order_id": {
                    "type": "string"
                },
                "payment_id": {
                    "type": "string"
                },
                "seller_receivable": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "total_paid_amount": {
                    "type": "integer"
                }
            }
        },
        "domain.PaymentWebhookEvent": {
            "type": "object",
            "properties": {
                "marketplace_fee": {
                    "type": "integer"
                },
                "order_id": {
                    "type": "string"
                },
                "payment_id": {
                    "type": "string"
                },
                "seller_amount": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "total_paid_amount": {
                    "type": "integer"
                }
            }
        },
        "domain.Product": {
            "type": "object",
            "properties": {
                "batch": {
                    "description": "Inventory/Batch Fields",
                    "type": "string"
                },
                "category": {
                    "type": "string"
                },
                "commercial_discount_cents": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "ean_code": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "string"
                },
                "factory_price_cents": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "internal_code": {
                    "description": "New Fields (Reference Data)",
                    "type": "string"
                },
                "invoice_price_cents": {
                    "type": "integer"
                },
                "manufacturer": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "observations": {
                    "type": "string"
                },
                "pmc_cents": {
                    "type": "integer"
                },
                "price_cents": {
                    "description": "Base/List Price",
                    "type": "integer"
                },
                "seller_id": {
                    "description": "Who created this catalog entry (usually Admin/Master)",
                    "type": "string"
                },
                "stock": {
                    "type": "integer"
                },
                "subcategory": {
                    "type": "string"
                },
                "tax_substitution_cents": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.ProductPaginationResponse": {
            "type": "object",
            "properties": {
                "current_page": {
                    "type": "integer"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.Product"
                    }
                },
                "total_count": {
                    "type": "integer"
                },
                "total_pages": {
                    "type": "integer"
                }
            }
        },
        "domain.ProductSearchPage": {
            "type": "object",
            "properties": {
                "page": {
                    "type": "integer"
                },
                "page_size": {
                    "type": "integer"
                },
                "products": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ProductWithDistance"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "domain.ProductWithDistance": {
            "type": "object",
            "properties": {
                "batch": {
                    "description": "Inventory/Batch Fields",
                    "type": "string"
                },
                "category": {
                    "type": "string"
                },
                "commercial_discount_cents": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "distance_km": {
                    "type": "number"
                },
                "ean_code": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "string"
                },
                "factory_price_cents": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "internal_code": {
                    "description": "New Fields (Reference Data)",
                    "type": "string"
                },
                "invoice_price_cents": {
                    "type": "integer"
                },
                "manufacturer": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "observations": {
                    "type": "string"
                },
                "pmc_cents": {
                    "type": "integer"
                },
                "price_cents": {
                    "description": "Base/List Price",
                    "type": "integer"
                },
                "seller_id": {
                    "description": "Who created this catalog entry (usually Admin/Master)",
                    "type": "string"
                },
                "stock": {
                    "type": "integer"
                },
                "subcategory": {
                    "type": "string"
                },
                "tax_substitution_cents": {
                    "type": "integer"
                },
                "tenant_city": {
                    "type": "string"
                },
                "tenant_state": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.Review": {
            "type": "object",
            "properties": {
                "buyer_id": {
                    "type": "string"
                },
                "comment": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "order_id": {
                    "type": "string"
                },
                "rating": {
                    "type": "integer"
                },
                "seller_id": {
                    "type": "string"
                }
            }
        },
        "domain.ReviewPage": {
            "type": "object",
            "properties": {
                "page": {
                    "type": "integer"
                },
                "page_size": {
                    "type": "integer"
                },
                "reviews": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.Review"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "domain.Shipment": {
            "type": "object",
            "properties": {
                "carrier": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "external_tracking": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "order_id": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tracking_code": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.ShipmentPage": {
            "type": "object",
            "properties": {
                "page": {
                    "type": "integer"
                },
                "page_size": {
                    "type": "integer"
                },
                "shipments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.Shipment"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "domain.ShippingAddress": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string"
                },
                "complement": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "district": {
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "number": {
                    "type": "string"
                },
                "recipient_name": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "street": {
                    "type": "string"
                },
                "zip_code": {
                    "type": "string"
                }
            }
        },
        "domain.ShippingOption": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "distance_km": {
                    "type": "number"
                },
                "estimated_minutes": {
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                },
                "value_cents": {
                    "type": "integer"
                }
            }
        },
        "domain.ShippingSettings": {
            "type": "object",
            "properties": {
                "active": {
                    "type": "boolean"
                },
                "created_at": {
                    "type": "string"
                },
                "free_shipping_threshold_cents": {
                    "type": "integer"
                },
                "latitude": {
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "max_radius_km": {
                    "type": "number"
                },
                "min_fee_cents": {
                    "type": "integer"
                },
                "pickup_active": {
                    "type": "boolean"
                },
                "pickup_address": {
                    "type": "string"
                },
                "pickup_hours": {
                    "type": "string"
                },
                "price_per_km_cents": {
                    "type": "integer"
                },
                "updated_at": {
                    "type": "string"
                },
                "vendor_id": {
                    "type": "string"
                }
            }
        },
        "domain.User": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "cpf": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "email_verified": {
                    "type": "boolean"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nome_social": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "superadmin": {
                    "type": "boolean"
                },
                "updated_at": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "domain.UserPage": {
            "type": "object",
            "properties": {
                "page": {
                    "type": "integer"
                },
                "page_size": {
                    "type": "integer"
                },
                "total": {
                    "type": "integer"
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.User"
                    }
                }
            }
        },
        "handler.addCartItemRequest": {
            "type": "object",
            "properties": {
                "product_id": {
                    "type": "string"
                },
                "quantity": {
                    "type": "integer"
                }
            }
        },
        "handler.authResponse": {
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "expires_at": {
                    "type": "string"
                }
            }
        },
        "handler.createAddressRequest": {
            "type": "object",
            "properties": {
                "bairro": {
                    "type": "string"
                },
                "cep": {
                    "type": "string"
                },
                "cidade": {
                    "type": "string"
                },
                "complemento": {
                    "type": "string"
                },
                "estado": {
                    "description": "JSON from frontend sends \"estado\"",
                    "type": "string"
                },
                "logradouro": {
                    "type": "string"
                },
                "numero": {
                    "type": "string"
                },
                "pais": {
                    "description": "JSON includes \"pais\"",
                    "type": "string"
                },
                "titulo": {
                    "type": "string"
                }
            }
        },
        "handler.createOrderRequest": {
            "type": "object",
            "properties": {
                "buyer_id": {
                    "type": "string"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.OrderItem"
                    }
                },
                "payment_method": {
                    "$ref": "#/definitions/handler.orderPaymentMethod"
                },
                "seller_id": {
                    "type": "string"
                },
                "shipping": {
                    "$ref": "#/definitions/domain.ShippingAddress"
                }
            }
        },
        "handler.createReviewRequest": {
            "type": "object",
            "properties": {
                "comment": {
                    "type": "string"
                },
                "order_id": {
                    "type": "string"
                },
                "rating": {
                    "type": "integer"
                }
            }
        },
        "handler.createShipmentRequest": {
            "type": "object",
            "properties": {
                "carrier": {
                    "type": "string"
                },
                "external_tracking": {
                    "type": "string"
                },
                "order_id": {
                    "type": "string"
                },
                "tracking_code": {
                    "type": "string"
                }
            }
        },
        "handler.createUserRequest": {
            "type": "object",
            "properties": {
                "company_id": {
                    "type": "string"
                },
                "cpf": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nome-social": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "superadmin": {
                    "type": "boolean"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "handler.forgotPasswordRequest": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                }
            }
        },
        "handler.inventoryAdjustRequest": {
            "type": "object",
            "properties": {
                "delta": {
                    "type": "integer"
                },
                "product_id": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "handler.loginRequest": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "handler.messageResponse": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "handler.orderPaymentMethod": {
            "type": "object",
            "properties": {
                "installments": {
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "handler.registerAuthRequest": {
            "type": "object",
            "properties": {
                "company": {
                    "$ref": "#/definitions/handler.registerCompanyTarget"
                },
                "company_id": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "handler.registerCompanyRequest": {
            "type": "object",
            "properties": {
                "atividade-principal": {
                    "description": "Frontend might send this",
                    "type": "string"
                },
                "atividade-principal-codigo": {
                    "description": "Frontend sends this",
                    "type": "string"
                },
                "atividade-principal-desc": {
                    "description": "Frontend sends this",
                    "type": "string"
                },
                "capital-social": {
                    "description": "Frontend sends this (number)",
                    "type": "number"
                },
                "category": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "cnpj": {
                    "type": "string"
                },
                "codigo_atividade": {
                    "type": "string"
                },
                "corporate_name": {
                    "type": "string"
                },
                "data-abertura": {
                    "description": "Fixed: frontend sends hyphen",
                    "type": "string"
                },
                "descricao_atividade": {
                    "type": "string"
                },
                "email": {
                    "description": "Frontend sends this",
                    "type": "string"
                },
                "enderecoID": {
                    "description": "Frontend sends this",
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "license_number": {
                    "type": "string"
                },
                "longitude": {
                    "type": "number"
                },
                "natureza-juridica": {
                    "description": "Ignored for now",
                    "type": "string"
                },
                "nome-fantasia": {
                    "type": "string"
                },
                "porte": {
                    "description": "Ignored for now",
                    "type": "string"
                },
                "raioEntregaKm": {
                    "description": "Frontend sends this",
                    "type": "number"
                },
                "razao-social": {
                    "description": "Portuguese Frontend Compatibility",
                    "type": "string"
                },
                "situacao": {
                    "description": "Ignored for now",
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "taxaEntrega": {
                    "description": "Frontend sends this",
                    "type": "number"
                },
                "telefone": {
                    "type": "string"
                },
                "tipoFrete": {
                    "description": "Frontend sends this",
                    "type": "string"
                },
                "valorFreteKm": {
                    "description": "Frontend sends this",
                    "type": "number"
                }
            }
        },
        "handler.registerCompanyTarget": {
            "type": "object",
            "properties": {
                "category": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "cnpj": {
                    "type": "string"
                },
                "corporate_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "latitude": {
                    "type": "number"
                },
                "license_number": {
                    "type": "string"
                },
                "longitude": {
                    "type": "number"
                },
                "state": {
                    "type": "string"
                }
            }
        },
        "handler.registerInventoryRequest": {
            "type": "object",
            "properties": {
                "expires_at": {
                    "description": "ISO8601",
                    "type": "string"
                },
                "observations": {
                    "type": "string"
                },
                "product_id": {
                    "type": "string"
                },
                "sale_price_cents": {
                    "type": "integer"
                },
                "seller_id": {
                    "type": "string"
                },
                "stock_quantity": {
                    "type": "integer"
                }
            }
        },
        "handler.registerProductRequest": {
            "type": "object",
            "properties": {
                "category": {
                    "type": "string"
                },
                "commercial_discount_cents": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "ean_code": {
                    "type": "string"
                },
                "factory_price_cents": {
                    "type": "integer"
                },
                "internal_code": {
                    "description": "New Fields",
                    "type": "string"
                },
                "invoice_price_cents": {
                    "type": "integer"
                },
                "manufacturer": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "pmc_cents": {
                    "type": "integer"
                },
                "price_cents": {
                    "type": "integer"
                },
                "seller_id": {
                    "type": "string"
                },
                "subcategory": {
                    "type": "string"
                },
                "tax_substitution_cents": {
                    "type": "integer"
                }
            }
        },
        "handler.resetPasswordRequest": {
            "type": "object",
            "properties": {
                "password": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "handler.resetTokenResponse": {
            "type": "object",
            "properties": {
                "expires_at": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "reset_token": {
                    "type": "string"
                }
            }
        },
        "handler.shippingCalculateRequest": {
            "type": "object",
            "properties": {
                "address_id": {
                    "type": "string"
                },
                "buyer_latitude": {
                    "type": "number"
                },
                "buyer_longitude": {
                    "type": "number"
                },
                "cart_total_cents": {
                    "type": "integer"
                },
                "postal_code": {
                    "type": "string"
                },
                "vendor_id": {
                    "type": "string"
                }
            }
        },
        "handler.shippingSettingsRequest": {
            "type": "object",
            "properties": {
                "active": {
                    "type": "boolean"
                },
                "free_shipping_threshold_cents": {
                    "type": "integer"
                },
                "latitude": {
                    "description": "Store location for radius calc",
                    "type": "number"
                },
                "longitude": {
                    "type": "number"
                },
                "max_radius_km": {
                    "type": "number"
                },
                "min_fee_cents": {
                    "type": "integer"
                },
                "pickup_active": {
                    "type": "boolean"
                },
                "pickup_address": {
                    "type": "string"
                },
                "pickup_hours": {
                    "type": "string"
                },
                "price_per_km_cents": {
                    "type": "integer"
                }
            }
        },
        "handler.updateCompanyRequest": {
            "type": "object",
            "properties": {
                "category": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "cnpj": {
                    "type": "string"
                },
                "corporate_name": {
                    "type": "string"
                },
                "is_verified": {
                    "type": "boolean"
                },
                "latitude": {
                    "type": "number"
                },
                "license_number": {
                    "type": "string"
                },
                "longitude": {
                    "type": "number"
                },
                "state": {
                    "type": "string"
                }
            }
        },
        "handler.updateStatusRequest": {
            "type": "object",
            "properties": {
                "status": {
                    "type": "string"
                }
            }
        },
        "handler.updateUserRequest": {
            "type": "object",
            "properties": {
                "ativo": {},
                "company_id": {
                    "type": "string"
                },
                "cpf": {},
                "created_at": {},
                "email": {
                    "type": "string"
                },
                "email_verified": {},
                "empresasDados": {
                    "description": "Frontend sends array of strings",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "enderecos": {
                    "description": "Frontend sends array of strings",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "id": {
                    "description": "Ignored fields sent by frontend to prevent \"unknown field\" errors"
                },
                "name": {
                    "type": "string"
                },
                "nivel": {},
                "nome": {},
                "nome-social": {},
                "password": {
                    "type": "string"
                },
                "registro-completo": {},
                "role": {
                    "type": "string"
                },
                "updated_at": {},
                "username": {
                    "type": "string"
                }
            }
        },
        "handler.verifyEmailRequest": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "BearerAuth": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
	Version:          "1.0",
	Host:             "",
	BasePath:         "/",
	Schemes:          []string{"http"},
	Title:            "SaveInMed Performance Core API",
	Description:      "API REST B2B para marketplace farmacêutico com split de pagamento e rastreabilidade.",
	InfoInstanceName: "swagger",
	SwaggerTemplate:  docTemplate,
	LeftDelim:        "{{",
	RightDelim:       "}}",
}

func init() {
	swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}
