saveinmed/backend/docs/docs.go

3412 lines
112 KiB
Go

// 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": "Autentica usuário e retorna token JWT.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Autenticação"
],
"summary": "Login",
"parameters": [
{
"description": "Credenciais",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_http_handler.loginRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_http_handler.authResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"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/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/internal_http_handler.forgotPasswordRequest"
}
}
],
"responses": {
"202": {
"description": "Accepted",
"schema": {
"$ref": "#/definitions/internal_http_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/internal_http_handler.resetPasswordRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_http_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/internal_http_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/internal_http_handler.registerAuthRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/internal_http_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/internal_http_handler.registerAuthRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/internal_http_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/internal_http_handler.registerAuthRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/internal_http_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/internal_http_handler.verifyEmailRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_http_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.addCartItemRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_domain.CartSummary"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/companies": {
"get": {
"produces": [
"application/json"
],
"tags": [
"Empresas"
],
"summary": "Lista empresas",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/internal_http_handler.registerCompanyRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.updateCompanyRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.inventoryAdjustRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.InventoryItem"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"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/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.createOrderRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_domain.PaymentPreference"
}
}
}
}
},
"/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/internal_http_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/github_com_saveinmed_backend-go_internal_domain.PaymentWebhookEvent"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.PaymentSplitResult"
}
}
}
}
},
"/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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.registerProductRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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"
}
}
}
}
},
"patch": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Produtos"
],
"summary": "Atualizar produto",
"parameters": [
{
"type": "string",
"description": "Product ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Campos para atualização",
"name": "payload",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_http_handler.updateProductRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.Product"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.createReviewRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.createShipmentRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.shippingCalculateRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.shippingSettingsRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.createUserRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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/github_com_saveinmed_backend-go_internal_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/internal_http_handler.updateUserRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_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": {
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.CartSummary": {
"type": "object",
"properties": {
"discount_cents": {
"type": "integer"
},
"discount_reason": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.CartItem"
}
},
"subtotal_cents": {
"type": "integer"
},
"total_cents": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
},
"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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.CompanyRating": {
"type": "object",
"properties": {
"average_score": {
"type": "number"
},
"company_id": {
"type": "string"
},
"total_reviews": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.InventoryItem": {
"type": "object",
"properties": {
"batch": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"name": {
"type": "string"
},
"price_cents": {
"type": "integer"
},
"product_id": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"seller_id": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.Order": {
"type": "object",
"properties": {
"buyer_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.OrderItem"
}
},
"payment_method": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.PaymentMethod"
},
"seller_id": {
"type": "string"
},
"shipping": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.ShippingAddress"
},
"status": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.OrderStatus"
},
"total_cents": {
"type": "integer"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.OrderStatus": {
"type": "string",
"enum": [
"Pendente",
"Pago",
"Faturado",
"Entregue"
],
"x-enum-varnames": [
"OrderStatusPending",
"OrderStatusPaid",
"OrderStatusInvoiced",
"OrderStatusDelivered"
]
},
"github_com_saveinmed_backend-go_internal_domain.PaymentMethod": {
"type": "string",
"enum": [
"pix",
"credit_card",
"debit_card"
],
"x-enum-varnames": [
"PaymentMethodPix",
"PaymentMethodCredit",
"PaymentMethodDebit"
]
},
"github_com_saveinmed_backend-go_internal_domain.PaymentPreference": {
"type": "object",
"properties": {
"commission_pct": {
"type": "number"
},
"gateway": {
"type": "string"
},
"marketplace_fee": {
"type": "integer"
},
"order_id": {
"type": "string"
},
"payment_url": {
"type": "string"
},
"seller_receivable": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.Product": {
"type": "object",
"properties": {
"batch": {
"type": "string"
},
"category": {
"type": "string"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"ean_code": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"id": {
"type": "string"
},
"manufacturer": {
"type": "string"
},
"name": {
"type": "string"
},
"observations": {
"type": "string"
},
"price_cents": {
"type": "integer"
},
"seller_id": {
"type": "string"
},
"stock": {
"type": "integer"
},
"subcategory": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ProductPaginationResponse": {
"type": "object",
"properties": {
"current_page": {
"type": "integer"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.Product"
}
},
"total_count": {
"type": "integer"
},
"total_pages": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ProductSearchPage": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"products": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.ProductWithDistance"
}
},
"total": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ProductWithDistance": {
"type": "object",
"properties": {
"batch": {
"type": "string"
},
"category": {
"type": "string"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"distance_km": {
"type": "number"
},
"ean_code": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"id": {
"type": "string"
},
"manufacturer": {
"type": "string"
},
"name": {
"type": "string"
},
"observations": {
"type": "string"
},
"price_cents": {
"type": "integer"
},
"seller_id": {
"type": "string"
},
"stock": {
"type": "integer"
},
"subcategory": {
"type": "string"
},
"tenant_city": {
"type": "string"
},
"tenant_state": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ReviewPage": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"reviews": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.Review"
}
},
"total": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ShipmentPage": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"shipments": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.Shipment"
}
},
"total": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ShippingAddress": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"complement": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"number": {
"type": "string"
},
"recipient_name": {
"type": "string"
},
"state": {
"type": "string"
},
"street": {
"type": "string"
},
"zip_code": {
"type": "string"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.ShippingOption": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"distance_km": {
"type": "number"
},
"estimated_minutes": {
"type": "integer"
},
"type": {
"type": "string"
},
"value_cents": {
"type": "integer"
}
}
},
"github_com_saveinmed_backend-go_internal_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"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.User": {
"type": "object",
"properties": {
"company_id": {
"type": "string"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"email_verified": {
"type": "boolean"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"role": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"github_com_saveinmed_backend-go_internal_domain.UserPage": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"total": {
"type": "integer"
},
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.User"
}
}
}
},
"internal_http_handler.addCartItemRequest": {
"type": "object",
"properties": {
"product_id": {
"type": "string"
},
"quantity": {
"type": "integer"
}
}
},
"internal_http_handler.authResponse": {
"type": "object",
"properties": {
"expires_at": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"internal_http_handler.createOrderRequest": {
"type": "object",
"properties": {
"buyer_id": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.OrderItem"
}
},
"payment_method": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.PaymentMethod"
},
"seller_id": {
"type": "string"
},
"shipping": {
"$ref": "#/definitions/github_com_saveinmed_backend-go_internal_domain.ShippingAddress"
}
}
},
"internal_http_handler.createReviewRequest": {
"type": "object",
"properties": {
"comment": {
"type": "string"
},
"order_id": {
"type": "string"
},
"rating": {
"type": "integer"
}
}
},
"internal_http_handler.createShipmentRequest": {
"type": "object",
"properties": {
"carrier": {
"type": "string"
},
"external_tracking": {
"type": "string"
},
"order_id": {
"type": "string"
},
"tracking_code": {
"type": "string"
}
}
},
"internal_http_handler.createUserRequest": {
"type": "object",
"properties": {
"company_id": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"role": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"internal_http_handler.forgotPasswordRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
}
}
},
"internal_http_handler.inventoryAdjustRequest": {
"type": "object",
"properties": {
"delta": {
"type": "integer"
},
"product_id": {
"type": "string"
},
"reason": {
"type": "string"
}
}
},
"internal_http_handler.loginRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"internal_http_handler.messageResponse": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
}
},
"internal_http_handler.registerAuthRequest": {
"type": "object",
"properties": {
"company": {
"$ref": "#/definitions/internal_http_handler.registerCompanyTarget"
},
"company_id": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"role": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"internal_http_handler.registerCompanyRequest": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"city": {
"type": "string"
},
"cnpj": {
"type": "string"
},
"corporate_name": {
"type": "string"
},
"latitude": {
"type": "number"
},
"license_number": {
"type": "string"
},
"longitude": {
"type": "number"
},
"state": {
"type": "string"
}
}
},
"internal_http_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"
}
}
},
"internal_http_handler.registerProductRequest": {
"type": "object",
"properties": {
"batch": {
"type": "string"
},
"description": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"name": {
"type": "string"
},
"price_cents": {
"type": "integer"
},
"seller_id": {
"type": "string"
},
"stock": {
"type": "integer"
}
}
},
"internal_http_handler.resetPasswordRequest": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"internal_http_handler.resetTokenResponse": {
"type": "object",
"properties": {
"expires_at": {
"type": "string"
},
"message": {
"type": "string"
},
"reset_token": {
"type": "string"
}
}
},
"internal_http_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"
}
}
},
"internal_http_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"
}
}
},
"internal_http_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"
}
}
},
"internal_http_handler.updateProductRequest": {
"type": "object",
"properties": {
"batch": {
"type": "string"
},
"description": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"name": {
"type": "string"
},
"price_cents": {
"type": "integer"
},
"seller_id": {
"type": "string"
},
"stock": {
"type": "integer"
}
}
},
"internal_http_handler.updateStatusRequest": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
}
},
"internal_http_handler.updateUserRequest": {
"type": "object",
"properties": {
"company_id": {
"type": "string"
},
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
},
"role": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"internal_http_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)
}