// 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/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/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/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/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" } } } }, "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/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/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/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/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" } } } } }, "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/handler.updateProductRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/domain.Product" } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "404": { "description": "Not Found", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/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/handler.loginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/handler.authResponse" } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "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/cart": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Carrinho" ], "summary": "Obter carrinho", "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/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}/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/admin": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Dashboard" ], "summary": "Dashboard do administrador", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/domain.AdminDashboard" } } } } }, "/api/v1/dashboard/seller": { "get": { "security": [ { "BearerAuth": [] } ], "produces": [ "application/json" ], "tags": [ "Dashboard" ], "summary": "Dashboard do vendedor", "parameters": [ { "type": "string", "description": "Seller ID", "name": "seller_id", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/domain.SellerDashboard" } } } } }, "/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" } } } } } }, "/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/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/reviews": { "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": { "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/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.AdminDashboard": { "type": "object", "properties": { "gmv_cents": { "type": "integer" }, "new_companies": { "type": "integer" }, "window_start_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" }, "items": { "type": "array", "items": { "$ref": "#/definitions/domain.CartItem" } }, "subtotal_cents": { "type": "integer" }, "total_cents": { "type": "integer" } } }, "domain.Company": { "type": "object", "properties": { "cnpj": { "type": "string" }, "corporate_name": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "is_verified": { "type": "boolean" }, "license_number": { "type": "string" }, "role": { "description": "pharmacy, distributor, admin", "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" }, "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" } } }, "domain.Order": { "type": "object", "properties": { "buyer_id": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/domain.OrderItem" } }, "seller_id": { "type": "string" }, "shipping": { "$ref": "#/definitions/domain.ShippingAddress" }, "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", "Entregue" ], "x-enum-varnames": [ "OrderStatusPending", "OrderStatusPaid", "OrderStatusInvoiced", "OrderStatusDelivered" ] }, "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" } } }, "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": { "type": "string" }, "created_at": { "type": "string" }, "description": { "type": "string" }, "expires_at": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "price_cents": { "type": "integer" }, "seller_id": { "type": "string" }, "stock": { "type": "integer" }, "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.SellerDashboard": { "type": "object", "properties": { "low_stock_alerts": { "type": "array", "items": { "$ref": "#/definitions/domain.Product" } }, "orders_count": { "type": "integer" }, "seller_id": { "type": "string" }, "top_products": { "type": "array", "items": { "$ref": "#/definitions/domain.TopProduct" } }, "total_sales_cents": { "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.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" } } }, "domain.TopProduct": { "type": "object", "properties": { "name": { "type": "string" }, "product_id": { "type": "string" }, "revenue_cents": { "type": "integer" }, "total_quantity": { "type": "integer" } } }, "domain.User": { "type": "object", "properties": { "company_id": { "type": "string" }, "created_at": { "type": "string" }, "email": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "role": { "type": "string" }, "updated_at": { "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": { "expires_at": { "type": "string" }, "token": { "type": "string" } } }, "handler.createOrderRequest": { "type": "object", "properties": { "buyer_id": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/domain.OrderItem" } }, "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" }, "email": { "type": "string" }, "name": { "type": "string" }, "password": { "type": "string" }, "role": { "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" } } }, "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" } } }, "handler.registerCompanyRequest": { "type": "object", "properties": { "cnpj": { "type": "string" }, "corporate_name": { "type": "string" }, "license_number": { "type": "string" }, "role": { "type": "string" } } }, "handler.registerCompanyTarget": { "type": "object", "properties": { "cnpj": { "type": "string" }, "corporate_name": { "type": "string" }, "id": { "type": "string" }, "license_number": { "type": "string" }, "role": { "type": "string" } } }, "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" } } }, "handler.updateCompanyRequest": { "type": "object", "properties": { "cnpj": { "type": "string" }, "corporate_name": { "type": "string" }, "is_verified": { "type": "boolean" }, "license_number": { "type": "string" }, "role": { "type": "string" } } }, "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" } } }, "handler.updateStatusRequest": { "type": "object", "properties": { "status": { "type": "string" } } }, "handler.updateUserRequest": { "type": "object", "properties": { "company_id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "password": { "type": "string" }, "role": { "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) }