








{
    "openapi": "3.0.0",
    "info": {
        "title": "API DOC - V1",
        "description": "Documentação da API BeBee",
        "contact": {
            "email": "suporte@bebee.com.br"
        },
        "version": "1.0.0"
    },
    "servers": [
        {
            "url": "https://api-v3.bebee.com.br",
            "description": "Produção"
        },
        {
            "url": "https://api-beeplace.bebee.tmp.br",
            "description": "Homologação"
        },
        {
            "url": "http://my-default-host.com",
            "description": "Servidor local (configurado via .env L5_SWAGGER_CONST_HOST)"
        }
    ],
    "paths": {
        "/api/admin/billing/request-credits": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Requisita uma compra nova de créditos",
                "description": "Efetua o pedido de uma compra de créditos, seja com pix ou cartão de crédito. Registra no Asaas e salva a compra no Elasticsearch.",
                "operationId": "requestCredits",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "billing_type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Créditos requisitados com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Créditos requisitados com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/billing": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Lista de créditos",
                "description": "Retorna uma lista de créditos com base nos parâmetros fornecidos.",
                "operationId": "listCustomerCredits",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de créditos retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Créditos listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/billing/get-credits": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Soma de créditos",
                "description": "Soma os créditos disponíveis pelo customer",
                "operationId": "adminGetActiveCredits",
                "responses": {
                    "200": {
                        "description": "Soma de créditos retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Créditos somados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/billing/consume-credits": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Executa um consumo de créditos disponíveis",
                "description": "Efetua o consumo de créditos disponíveis pelo cliente.",
                "operationId": "consumeCredits",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "amount",
                                    "consumed_product"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Créditos consumidos com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Créditos consumidos com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/bemedia-filters-alerts": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Lista filtros de alerta BeeMedia (categoria e palavras-chave)",
                "operationId": "adminBemediaFiltersAlertsIndex",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "example": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista paginada (Elasticsearch, escopo teams_id do token)"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Cria filtro de alerta BeeMedia",
                "operationId": "adminBemediaFiltersAlertsStore",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "category",
                                    "keywords"
                                ],
                                "properties": {
                                    "category": {
                                        "type": "string",
                                        "example": "Política"
                                    },
                                    "keywords": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "example": "eleição"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Criado"
                    },
                    "422": {
                        "description": "Validação"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/bemedia-filters-alerts/{bemedia_filters_alert}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Detalha um filtro de alerta",
                "operationId": "adminBemediaFiltersAlertsShow",
                "parameters": [
                    {
                        "name": "bemedia_filters_alert",
                        "in": "path",
                        "description": "ID do documento no Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Documento"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Atualiza categoria e/ou palavras-chave",
                "operationId": "adminBemediaFiltersAlertsUpdate",
                "parameters": [
                    {
                        "name": "bemedia_filters_alert",
                        "in": "path",
                        "description": "ID do documento no Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "category": {
                                        "type": "string"
                                    },
                                    "keywords": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Atualizado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/bemedia-filters-alerts/{id}": {
            "delete": {
                "tags": [
                    "Admin"
                ],
                "summary": "Remove filtro de alerta (soft delete; requer 2FA)",
                "operationId": "adminBemediaFiltersAlertsDestroy",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Removido"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/customers-channels/sms-templates/{channelId}": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Lista as templates de SMS",
                "description": "Retorna uma lista de templates de SMS com base nos parâmetros fornecidos.",
                "operationId": "24e6fdd7b1959018b364fe7ae60b5359",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de templates retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Templates de SMS listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Cria um novo template SMS",
                "description": "Recebe os dados de um template, valida se o template é válido e o registra na base de dados.",
                "operationId": "d5ba4d708804270754726a5dfde3d2b1",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "message",
                                    "status",
                                    "channel_customer_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Template exemplo"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Mensagem de demonstração"
                                    },
                                    "channel_customer_id": {
                                        "type": "string",
                                        "example": "id-exemplo-00001"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status exemplo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "status": [
                                                    "O campo status é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/customers-channels/sms-templates/{templateId}": {
            "put": {
                "tags": [
                    "Admin"
                ],
                "summary": "Atualiza um template de SMS",
                "description": "Recebe os dados de um template, valida se o template é válido e o modifica na base de dados.",
                "operationId": "4f92e51085b013e2744387f3264d1d93",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "message",
                                    "status",
                                    "channel_customer_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Template exemplo"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Mensagem de demonstração"
                                    },
                                    "channel_customer_id": {
                                        "type": "string",
                                        "example": "id-exemplo-00001"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status exemplo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template atualizada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo status é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/customers-applications": {
            "get": {
                "tags": [
                    "Admin"
                ],
                "summary": "Lista todas as aplicações disponíveis",
                "operationId": "a4b796c6b656f125fb2196d12de64064",
                "responses": {
                    "200": {
                        "description": "Lista de aplicações recuperada com sucesso"
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Mensagem de erro detalhada"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeplace/status": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Cria  um status de conversão do funil do BeePlace e order Sales",
                "description": "Cria um status de etapa do funil do BeePlace e OrderSales, incluindo nome, marcação de conversão e estilo visual do estágio.",
                "operationId": "storeStatusBeePlace",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "converted",
                                    "funnel"
                                ],
                                "properties": {
                                    "name": {
                                        "description": "Nome do status",
                                        "type": "string",
                                        "example": "pago"
                                    },
                                    "converted": {
                                        "description": "Indica se o status é um ponto de conversão",
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "funnel": {
                                        "required": [
                                            "stage",
                                            "name",
                                            "color"
                                        ],
                                        "properties": {
                                            "stage": {
                                                "description": "Estágio do funil: top, middle ou bottom",
                                                "type": "string",
                                                "example": "bottom"
                                            },
                                            "name": {
                                                "description": "Nome amigável do estágio",
                                                "type": "string",
                                                "example": "Fundo"
                                            },
                                            "color": {
                                                "description": "Cor do estágio no formato hexadecimal",
                                                "type": "string",
                                                "example": "#A7D4F2"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Status criado ou atualizado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "success": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "message": {
                                                    "type": "string",
                                                    "example": "Document inserted successfully"
                                                },
                                                "id": {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "example": "8f99b2b2-9f10-4142-9db4-c62a76e3d4e3"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "name": [
                                                    "The name field is required."
                                                ],
                                                "converted": [
                                                    "The converted field is required."
                                                ],
                                                "funnel.stage": [
                                                    "O campo funnel.stage deve ser um dos seguintes: top, middle ou bottom."
                                                ],
                                                "funnel.name": [
                                                    "O campo funnel.name é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/subscriptions": {
            "post": {
                "tags": [
                    "Admin"
                ],
                "summary": "Cria uma nova assinatura recorrente",
                "description": "Cria uma assinatura para um cliente usando boleto, pix ou cartão de crédito. Registra no Asaas e salva a assinatura no Elasticsearch.",
                "operationId": "storeSubscription",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer",
                                    "amount",
                                    "date_due",
                                    "billing_type",
                                    "description",
                                    "cicly"
                                ],
                                "properties": {
                                    "customer": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "cliente_001"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "João da Silva"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 99.9
                                    },
                                    "date_due": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2025-06-15"
                                    },
                                    "billing_type": {
                                        "type": "string",
                                        "enum": [
                                            "credit_card",
                                            "pix",
                                            "boleto"
                                        ],
                                        "example": "credit_card"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Assinatura BeePlace"
                                    },
                                    "cicly": {
                                        "type": "string",
                                        "enum": [
                                            "monthly",
                                            "weekly",
                                            "bimonthly",
                                            "quarterly",
                                            "semiannual",
                                            "yearly"
                                        ],
                                        "example": "monthly"
                                    },
                                    "credit_card_info": {
                                        "required": [
                                            "name",
                                            "email",
                                            "federal_document",
                                            "zip_code",
                                            "address_number",
                                            "phone"
                                        ],
                                        "properties": {
                                            "name": {
                                                "type": "string",
                                                "example": "João da Silva"
                                            },
                                            "email": {
                                                "type": "string",
                                                "example": "joao@email.com"
                                            },
                                            "federal_document": {
                                                "type": "string",
                                                "example": "12345678900"
                                            },
                                            "zip_code": {
                                                "type": "string",
                                                "example": "89010025"
                                            },
                                            "address_number": {
                                                "type": "string",
                                                "example": "100"
                                            },
                                            "phone": {
                                                "type": "string",
                                                "example": "47999999999"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Assinatura criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Assinatura criada com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "customer.id": [
                                                    "O campo customer.id deve ser preenchido."
                                                ],
                                                "amount": [
                                                    "O campo amount não deve ser menor que 5.00"
                                                ],
                                                "billing_type": [
                                                    "O campo billing_type valores aceitos : credit_card,pix,boleto"
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/admin/subscriptions/{id}": {
            "delete": {
                "tags": [
                    "Admin"
                ],
                "summary": "Cancela uma assinatura recorrente",
                "description": "Cancela a assinatura vinculada ao identificador informado. Atualiza o status local e comunica o provedor de cobrança (Asaas).",
                "operationId": "destroySubscription",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID da assinatura no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "reason"
                                ],
                                "properties": {
                                    "reason": {
                                        "description": "Motivo do cancelamento",
                                        "type": "string",
                                        "enum": [
                                            "cost",
                                            "no_usage",
                                            "change",
                                            "competitor",
                                            "issue",
                                            "support",
                                            "temporary",
                                            "missing_feat",
                                            "confusion",
                                            "self_cancel"
                                        ],
                                        "example": "no_usage"
                                    },
                                    "description": {
                                        "description": "Descrição livre do motivo do cancelamento (opcional)",
                                        "type": "string",
                                        "example": "O cliente não está utilizando a plataforma no momento."
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Assinatura cancelada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Assinatura cancelada com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Assinatura não encontrada",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possível abrir informações do customers_subscription"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/beemedia/marketing-categories": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza uma nova categoria de marketing",
                "description": "Atualiza uma categoria de marketing registrando no Elasticsearch.",
                "operationId": "updateMarketingCategory",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "agent_questions",
                                    "description"
                                ],
                                "properties": {
                                    "code": {
                                        "description": "Código 2FA para a permissão do uso do endpoint",
                                        "type": "string",
                                        "example": "081963"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Categoria X"
                                    },
                                    "agent_questions": {
                                        "type": "string",
                                        "example": "Prompt de IA"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Descrição da categoria"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-status-001"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status Name"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Categoria de marketing atualizada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria uma nova categoria de marketing",
                "description": "Cria uma categoria de marketing registrando no Elasticsearch.",
                "operationId": "storeMarketingCategory",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "agent_questions",
                                    "description"
                                ],
                                "properties": {
                                    "code": {
                                        "description": "Código 2FA para a permissão do uso do endpoint",
                                        "type": "string",
                                        "example": "081963"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Categoria X"
                                    },
                                    "agent_questions": {
                                        "type": "string",
                                        "example": "Prompt de IA"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Descrição da categoria"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-status-001"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status Name"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Categoria de marketing criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/beeone/finance/customer-config-beeone": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista configurações BeeOne (Asaas) por customer",
                "description": "Respostas mascaram `asaas_api_key_cipher`; inclui `asaas_api_key_configured`. Requer utilizador BeBee interno.",
                "operationId": "44f695cad03d3fe29b3e3a1e1cfbe12b",
                "parameters": [
                    {
                        "name": "teams_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria configuração Asaas BeeOne para um teams_id (API key cifrada)",
                "description": "Requer 2FA. Chave enviada em texto é persistida com `Crypt::encryptString`.",
                "operationId": "330dbe4bc6502441e37e9da5207dfad0",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "teams_id",
                                    "asaas_environment",
                                    "asaas_api_key"
                                ],
                                "properties": {
                                    "teams_id": {
                                        "type": "string",
                                        "format": "uuid"
                                    },
                                    "asaas_environment": {
                                        "type": "string",
                                        "enum": [
                                            "sandbox",
                                            "production"
                                        ]
                                    },
                                    "asaas_api_key": {
                                        "description": "Token Asaas em texto (não persistido em claro)",
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Criado"
                    },
                    "409": {
                        "description": "Já existe configuração ativa"
                    },
                    "422": {
                        "description": "Validação"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/beeone/finance/customer-config-beeone/{teams_id}": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Obtém configuração BeeOne Asaas de um customer",
                "operationId": "c2a01f61637ae89ed4b1989c0e78c0e8",
                "parameters": [
                    {
                        "name": "teams_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Não encontrado"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza ambiente e/ou API key Asaas BeeOne",
                "description": "Requer 2FA. Se `asaas_api_key` for omitida, mantém-se a chave atual.",
                "operationId": "d963a1ad0d376427eaf2198403ac5cad",
                "parameters": [
                    {
                        "name": "teams_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "asaas_environment": {
                                        "type": "string",
                                        "enum": [
                                            "sandbox",
                                            "production"
                                        ]
                                    },
                                    "asaas_api_key": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Atualizado"
                    },
                    "410": {
                        "description": "Documento removido"
                    },
                    "404": {
                        "description": "Não encontrado"
                    },
                    "422": {
                        "description": "Validação"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Remove (soft delete) configuração BeeOne Asaas",
                "description": "Requer 2FA (`removed = true`).",
                "operationId": "ef05d812d976fdaed2b18be3af8df8b5",
                "parameters": [
                    {
                        "name": "teams_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Não encontrado"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/beeone/finance/charges": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista cobranças BeeOne finance (Elasticsearch)",
                "operationId": "e7eb448d5e3d1c61e9709b520b917e6f",
                "parameters": [
                    {
                        "name": "teams_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "example": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria pedido de cobrança para um customer (teams_id) e enfileira",
                "description": "Requer 2FA.",
                "operationId": "9f21c4eae2592144c335060971cdb955",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "teams_id",
                                    "full_name",
                                    "federal_document",
                                    "amount_usd",
                                    "usd_exchange_rate",
                                    "email",
                                    "phone",
                                    "description"
                                ],
                                "properties": {
                                    "teams_id": {
                                        "type": "string"
                                    },
                                    "full_name": {
                                        "type": "string"
                                    },
                                    "federal_document": {
                                        "type": "string"
                                    },
                                    "amount_usd": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "usd_exchange_rate": {
                                        "type": "number",
                                        "format": "float"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "phone": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 500
                                    },
                                    "due_date": {
                                        "description": "YYYY-MM-DD; omitir ou vazio = dia corrente",
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true
                                    },
                                    "internal_note": {
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Enfileirado"
                    },
                    "422": {
                        "description": "Validação ou config Asaas"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/beeone/finance/charges/{id}": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Detalhe de uma cobrança BeeOne finance",
                "operationId": "dcf5def67ee8638a701353b711ffcc99",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Não encontrado"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza nota interna da cobrança",
                "description": "Requer 2FA.",
                "operationId": "bf26d1919702383547f59d8866f75d84",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "internal_note"
                                ],
                                "properties": {
                                    "internal_note": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Não encontrado"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Remove (soft delete) cobrança BeeOne finance",
                "description": "Requer 2FA.",
                "operationId": "a5fd6e6a91aad1a6a15909c8b5c16236",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Não encontrado"
                    },
                    "403": {
                        "description": "Acesso negado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing/get-credits/{id}": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Soma de créditos",
                "description": "Soma os créditos disponíveis pelo customer",
                "operationId": "getActiveCredits",
                "responses": {
                    "200": {
                        "description": "Soma de créditos retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Créditos somados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing": {
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria créditos para um teams_id determinado",
                "description": "Cria créditos para um teams_id determinado registrando no Elasticsearch.",
                "operationId": "storeCredits",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer_id",
                                    "amount",
                                    "days_to_expire"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "string",
                                        "example": "algum-teams-id"
                                    },
                                    "amount": {
                                        "type": "integer",
                                        "example": "20"
                                    },
                                    "days_to_expire": {
                                        "type": "integer",
                                        "example": "5"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Representante/vendedor criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing/change-payment-value": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Muda o valor de pagamento do billing",
                "description": "Muda o valor de pagamento do billing",
                "operationId": "changePaymentValue",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "credit_id",
                                    "new_value"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Valor do Billing alterado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Valor do Billing alterado com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing/change-discount-value": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Muda o valor de desconto do billing",
                "description": "Muda o valor de desconto do billing",
                "operationId": "changeDiscountValue",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "credit_id",
                                    "new_dicount_value"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Valor do desconto do Billing alterado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Valor do desconto do Billing alterado com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing/change-billing-type": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Muda a forma de pagamento do billing",
                "description": "Muda a forma de pagamento do billing",
                "operationId": "changeBillingType",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "credit_id",
                                    "billing_type"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Forma de pagamento do Billing alterada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Forma de pagamento do Billing alterada com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing/change-expiration-date": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Muda a data de vencimento do billing",
                "description": "Muda a data de vencimento do billing",
                "operationId": "changeExpirationDate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "credit_id",
                                    "expiration_date"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Data de vencimento do Billing alterada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Data de vencimento do Billing alterada com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/billing/cancel/{id}": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cancela o billing",
                "description": "Cancela o billing",
                "operationId": "cancelPayment",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Billing cancelado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Billing cancelado com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/config/others": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista as configurações do sistema",
                "description": "Retorna uma lista de configurações para o sistema em si.",
                "operationId": "1b5279b634f5a2001c411ef218902e23",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de configurações retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Configurações listadas com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza as configurações no BackOffice",
                "description": "Atualiza a configuração registrada no Elasticsearch.",
                "operationId": "updateConfigOthers",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "configs"
                                ],
                                "properties": {
                                    "configs": {
                                        "description": "Um array contendo as configs que devem ser organizados conforme o objeto de uma config.",
                                        "type": "array",
                                        "items": {}
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Representante/vendedor criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/customers-channels/sms-templates/{channelId}": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista as templates de SMS",
                "description": "Retorna uma lista de templates de SMS com base nos parâmetros fornecidos.",
                "operationId": "f208e4ff64d2426b0074acba6a4c6c0c",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de templates retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Templates de SMS listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria um novo template SMS",
                "description": "Recebe os dados de um template, valida se o template é válido e o registra na base de dados.",
                "operationId": "6e63dd713e6b4aeaeff070f59e388ade",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "message",
                                    "status",
                                    "channel_customer_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Template exemplo"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Mensagem de demonstração"
                                    },
                                    "channel_customer_id": {
                                        "type": "string",
                                        "example": "id-exemplo-00001"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status exemplo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "status": [
                                                    "O campo status é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/customers-channels/sms-templates/{templateId}": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza um template de SMS",
                "description": "Recebe os dados de um template, valida se o template é válido e o modifica na base de dados.",
                "operationId": "4959f9e38be960ca99ee7823947b10ef",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "message",
                                    "status",
                                    "channel_customer_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Template exemplo"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Mensagem de demonstração"
                                    },
                                    "channel_customer_id": {
                                        "type": "string",
                                        "example": "id-exemplo-00001"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status exemplo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template atualizada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo status é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/leads": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista leads",
                "description": "Retorna uma lista de leads com base nos parâmetros fornecidos.",
                "operationId": "listLeads",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Leads retornados com sucesso"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria um novo lead",
                "operationId": "createLead",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "phone"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "João Silva"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "11999999999"
                                    },
                                    "event_type": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "vtex_day"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Vtex Day"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Lead criado com sucesso"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/leads/{id}": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Busca um lead",
                "operationId": "getLead",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lead retornado com sucesso"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza um lead",
                "operationId": "updateLead",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "phone": {
                                        "type": "string"
                                    },
                                    "event_type": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "vtex_day"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Vtex Day"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Lead atualizado com sucesso"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Remove um lead",
                "operationId": "deleteLead",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lead removido com sucesso"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/partners": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista representantes/vendedores",
                "description": "Retorna uma lista de representantes/vendedores com base nos parâmetros fornecidos.",
                "operationId": "listPartners",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de representantes/vendedores retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Representantes/vendedores listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria um novo representante/vendedor",
                "description": "Cria um representante/vendedor registrando no Elasticsearch.",
                "operationId": "storePartner",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "email",
                                    "phone",
                                    "commission_percent",
                                    "type",
                                    "status"
                                ],
                                "properties": {
                                    "code": {
                                        "description": "Código 2FA para a permissão do uso do endpoint",
                                        "type": "string",
                                        "example": "081963"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Matheus da Silva"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "matheus@email.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "5511999999999"
                                    },
                                    "commission_percent": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 99.9
                                    },
                                    "type": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-type-0011"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Type Name"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-status-001"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status Name"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Representante/vendedor criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/partners/{id}": {
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza um novo representante/vendedor",
                "description": "Atualiza um representante/vendedor registrado no Elasticsearch.",
                "operationId": "updatePartner",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "User ID",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "email",
                                    "phone",
                                    "commission_percent",
                                    "type",
                                    "status"
                                ],
                                "properties": {
                                    "code": {
                                        "description": "Código 2FA para a permissão do uso do endpoint",
                                        "type": "string",
                                        "example": "081963"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Matheus da Silva"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "matheus@email.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "5511999999999"
                                    },
                                    "commission_percent": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 99.9
                                    },
                                    "type": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-type-0011"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Type Name"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-status-001"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status Name"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Representante/vendedor criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Deleta um representante/vendedor",
                "description": "Deleta um representante/vendedor, se este já tiver clientes vinculados sua exclusão é interrompida.",
                "operationId": "destroyPartner",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do representante/vendedor no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Representante/vendedor deletado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Representante/vendedor deletado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Representante/vendedor não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possivel abrir informações de partner"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/persons": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista pessoas",
                "description": "Retorna uma lista de pessoas da base de enriquecimento, com base nos parâmetros oferecidos.",
                "operationId": "listPersons",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de pessoas retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Pessoas listadas com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria uma nova pessoa",
                "description": "Busca uma pessoa pelo CPF e caso esta exista, adiciona ao banco de dados Elastic Search.",
                "operationId": "storePerson",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "federal_document"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "11111111111"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Pessoa criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/plans": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista planos",
                "description": "Retorna uma lista de planos com base nos parâmetros fornecidos.",
                "operationId": "backofficeListPlans",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de planos retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Planos listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria um novo plano",
                "description": "Recebe os dados de um plano, valida se o plano é válido e o registra na base de dados.",
                "operationId": "createPlan",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "description",
                                    "file_path",
                                    "subscription",
                                    "status",
                                    "plan_type"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campanha super BeeMedia"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "<h1>Exemplo com título</h1>"
                                    },
                                    "file_path": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://urlteste.com.beebe"
                                    },
                                    "subscription": {
                                        "required": [
                                            "period_type",
                                            "payment_amount",
                                            "credits_amount"
                                        ],
                                        "properties": {
                                            "period_type": {
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "monthly"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Mensal"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "payment_amount": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 12.05
                                            },
                                            "credits_amount": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 12.05
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "active"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Ativo"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "plan_type": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "starter"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Starter"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Plano criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo media é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/plans/{id}": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Busca um plano",
                "description": "Busca um plano com o id buscado",
                "operationId": "getPlan",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do plano",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Plano retornado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Plano buscado com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Atualiza um plano existente",
                "description": "Atualiza um plano registrado no Elasticsearch.",
                "operationId": "updatePlan",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do plano",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "description",
                                    "file_path",
                                    "subscription",
                                    "status",
                                    "plan_type"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campanha super BeeMedia"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "<h1>Exemplo com título</h1>"
                                    },
                                    "file_path": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://urlteste.com.beebe"
                                    },
                                    "subscription": {
                                        "required": [
                                            "period_type",
                                            "payment_amount",
                                            "credits_amount"
                                        ],
                                        "properties": {
                                            "period_type": {
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "monthly"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Mensal"
                                                    }
                                                },
                                                "type": "object"
                                            },
                                            "payment_amount": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 12.05
                                            },
                                            "credits_amount": {
                                                "type": "number",
                                                "format": "float",
                                                "example": 12.05
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "active"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Ativo"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "plan_type": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "starter"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Starter"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Plano atualizado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Atualizado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Deleta um plano",
                "description": "Deleta um plano.",
                "operationId": "destroyPlan",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do plano no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Plano deletado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Plano deletado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Plano não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possivel abrir informações do plano"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/subscriptions": {
            "get": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Lista assinaturas recorrentes",
                "description": "Retorna uma lista de assinaturas recorrentes com base nos parâmetros fornecidos.",
                "operationId": "listSubscriptions",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de assinaturas retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Assinaturas listadas com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cria uma nova assinatura recorrente",
                "description": "Cria uma assinatura para um cliente usando boleto, pix ou cartão de crédito. Registra no Asaas e salva a assinatura no Elasticsearch.",
                "operationId": "storeBackofficeSubscription",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "customer",
                                    "amount",
                                    "date_due",
                                    "billing_type",
                                    "description",
                                    "cicly"
                                ],
                                "properties": {
                                    "customer": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "cliente_001"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "João da Silva"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 99.9
                                    },
                                    "date_due": {
                                        "type": "string",
                                        "format": "date",
                                        "example": "2025-06-15"
                                    },
                                    "billing_type": {
                                        "type": "string",
                                        "enum": [
                                            "credit_card",
                                            "pix",
                                            "boleto"
                                        ],
                                        "example": "credit_card"
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Assinatura BeePlace"
                                    },
                                    "cicly": {
                                        "type": "string",
                                        "enum": [
                                            "monthly",
                                            "weekly",
                                            "bimonthly",
                                            "quarterly",
                                            "semiannual",
                                            "yearly"
                                        ],
                                        "example": "monthly"
                                    },
                                    "credit_card_info": {
                                        "required": [
                                            "name",
                                            "email",
                                            "federal_document",
                                            "zip_code",
                                            "address_number",
                                            "phone"
                                        ],
                                        "properties": {
                                            "name": {
                                                "type": "string",
                                                "example": "João da Silva"
                                            },
                                            "email": {
                                                "type": "string",
                                                "example": "joao@email.com"
                                            },
                                            "federal_document": {
                                                "type": "string",
                                                "example": "12345678900"
                                            },
                                            "zip_code": {
                                                "type": "string",
                                                "example": "89010025"
                                            },
                                            "address_number": {
                                                "type": "string",
                                                "example": "100"
                                            },
                                            "phone": {
                                                "type": "string",
                                                "example": "47999999999"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Assinatura criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Assinatura criada com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "signature_id": {
                                                    "type": "string",
                                                    "example": "sub_abc123456"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "customer.id": [
                                                    "O campo customer.id deve ser preenchido."
                                                ],
                                                "amount": [
                                                    "O campo amount não deve ser menor que 5.00"
                                                ],
                                                "billing_type": [
                                                    "O campo billing_type valores aceitos : credit_card,pix,boleto"
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/backoffice/subscriptions/{id}": {
            "delete": {
                "tags": [
                    "Backoffice"
                ],
                "summary": "Cancela uma assinatura recorrente",
                "description": "Cancela a assinatura vinculada ao identificador informado. Atualiza o status local e comunica o provedor de cobrança (Asaas).",
                "operationId": "destroyBackofficeSubscription",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID da assinatura no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Assinatura cancelada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Assinatura cancelada com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Assinatura não encontrada",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possivel abrir informações do customers_subscription"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beemedia/agents": {
            "get": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Lista os agentes",
                "description": "Retorna uma lista de agentes com base nos parâmetros fornecidos.",
                "operationId": "1082af97a903be3f0852a28282b33da1",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de agentes retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Agentes listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Cria um novo agente BeeMedia",
                "description": "Recebe os dados de um agente, valida se o agente é válido e o registra na base de dados.",
                "operationId": "22d36135c9c0bf85c25454bb4aa7b2ed",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "media",
                                    "url",
                                    "copy",
                                    "category",
                                    "channel",
                                    "delivery_type",
                                    "impression_value",
                                    "max_bid_value"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campanha super BeeMedia"
                                    },
                                    "media": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://midiahospedadapelabeebe.com.br/imagem-exemplo"
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://urldacampanha.com.beebe"
                                    },
                                    "impression_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "max_bid_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "category": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-da-categoria-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Categoria de Marketing"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "channel": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-canal-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Canal de cliente existente"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "delivery_type": {
                                        "description": "Deve ser apenas os objetos: {id: 'initial_print', name: 'Inicial'} ou {id: 'conversation_print', name: 'Conversacional'}",
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "initial_print"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Inicial"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Agente criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "name": [
                                                    "O campo name é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beemedia/agents/{id}": {
            "get": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Mostra um agente",
                "description": "Retorna um agente com base no ID fornecido.",
                "operationId": "9177588f3f7bf7977c96b8e041ea15f9",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do agente no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "agent_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Agente retornado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Agente buscado com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Atualiza um agente BeeMedia",
                "description": "Recebe os dados de um agente, valida se o agente é válido e o modifica na base de dados.",
                "operationId": "9e062552564995b6ddf776bbaf816d85",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "media",
                                    "url",
                                    "copy",
                                    "category",
                                    "channel",
                                    "delivery_type",
                                    "impression_value",
                                    "max_bid_value"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campanha super BeeMedia"
                                    },
                                    "media": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://midiahospedadapelabeebe.com.br/imagem-exemplo"
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://urldacampanha.com.beebe"
                                    },
                                    "impression_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "max_bid_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "category": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-da-categoria-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Categoria de Marketing"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "channel": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-canal-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Canal de cliente existente"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "delivery_type": {
                                        "description": "Deve ser apenas os objetos: {id: 'initial_print', name: 'Inicial'} ou {id: 'conversation_print', name: 'Conversacional'}",
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "initial_print"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Inicial"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Agente atualizado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "name": [
                                                    "O campo name é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Deleta um agente",
                "description": "Deleta um agente existente.",
                "operationId": "eda075ca6da138ca38b713beff407281",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do agente no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "agent_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Agente deletado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Agente deletado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Agente não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possivel abrir informações do agente"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beemedia/analytics": {
            "get": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Agregações de monitoramento de portais para o dashboard",
                "description": "Retorna agregações via ElasticsearchTrait::esSearch: no índice beemedia_portals_monitoring (teams_id do usuário, removed=false) com histograma por hora, terms por userAgent, nested terms por ip_geolocation.region, top 10 URLs e cardinalidade de visitantes únicos pelo campo ip. Segunda consulta no índice beemedia_contents no mesmo intervalo created_at: contagem de documentos com status.id published. Período opcional: query params start e end.",
                "operationId": "08a78e2f9d1daf941d0b33a582aa9ddd",
                "parameters": [
                    {
                        "name": "start",
                        "in": "query",
                        "description": "Início do intervalo (ISO 8601 ou string parseável pelo Carbon). Padrão: 30 dias antes de end.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "2026-03-01T00:00:00-03:00"
                        }
                    },
                    {
                        "name": "end",
                        "in": "query",
                        "description": "Fim do intervalo. Padrão: agora.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "2026-04-09T23:59:59-03:00"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Agregações retornadas com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Processed successfully."
                                        },
                                        "data": {
                                            "properties": {
                                                "range": {
                                                    "properties": {
                                                        "start": {
                                                            "type": "string",
                                                            "example": "2026-03-10T15:00:00-03:00"
                                                        },
                                                        "end": {
                                                            "type": "string",
                                                            "example": "2026-04-09T15:00:00-03:00"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "total_hits": {
                                                    "type": "integer",
                                                    "example": 1250
                                                },
                                                "unique_visits_by_ip": {
                                                    "description": "Estimativa de IPs distintos (cardinality no Elasticsearch)",
                                                    "type": "integer"
                                                },
                                                "published_contents_count": {
                                                    "description": "Conteúdos com status published no índice beemedia_contents no intervalo",
                                                    "type": "integer"
                                                },
                                                "events_by_hour": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "key_as_string": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "timestamp": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "count": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "by_user_agent": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "key": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "count": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "by_region": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "key": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "count": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "top_urls": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "key": {
                                                                "type": "string",
                                                                "nullable": true
                                                            },
                                                            "count": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Falha ao executar a requisição ou consulta",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "data": {
                                            "type": "object"
                                        },
                                        "error": {
                                            "properties": {
                                                "line": {
                                                    "type": "string"
                                                },
                                                "tracer": {
                                                    "type": "string"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beemedia/operator/marketing-campaigns": {
            "get": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Lista as campanhas de marketing",
                "description": "Retorna uma lista de campanhas de marketing com base nos parâmetros fornecidos.",
                "operationId": "d57595fd5ab2d76f34b74d770f6bec3d",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de campanhas de marketing retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Campanhas listadas com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Cria uma nova campanha de marketing BeeMedia",
                "description": "Recebe os dados de uma campanha, valida se a campanha é válida e a registra na base de dados.",
                "operationId": "9ba43ab705da3b399518c0a0ec2dd94f",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "media",
                                    "url",
                                    "copy",
                                    "category",
                                    "channel",
                                    "delivery_type",
                                    "impression_value",
                                    "max_bid_value"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campanha super BeeMedia"
                                    },
                                    "media": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://midiahospedadapelabeebe.com.br/imagem-exemplo"
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://urldacampanha.com.beebe"
                                    },
                                    "impression_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "max_bid_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "category": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-da-categoria-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Categoria de Marketing"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "channel": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-canal-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Canal de cliente existente"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "delivery_type": {
                                        "description": "Deve ser apenas os objetos: {id: 'initial_print', name: 'Inicial'} ou {id: 'conversation_print', name: 'Conversacional'}",
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "initial_print"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Inicial"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Campanha de marketing criada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo media é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beemedia/operator/marketing-campaigns/{id}": {
            "get": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Lista as campanhas de marketing",
                "description": "Retorna uma lista de campanhas de marketing com base nos parâmetros fornecidos.",
                "operationId": "9bc79ebd792e669e74c9b62c4ea2202d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID da campanha no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Campanha de marketing retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Campanha buscada com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Atualiza uma campanha de marketing BeeMedia",
                "description": "Recebe os dados de uma campanha, valida se a campanha é válida e a modifica na base de dados.",
                "operationId": "82b346cc6460693229b00957b9a934e3",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "media",
                                    "url",
                                    "copy",
                                    "category",
                                    "channel",
                                    "delivery_type",
                                    "impression_value",
                                    "max_bid_value"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campanha super BeeMedia"
                                    },
                                    "media": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://midiahospedadapelabeebe.com.br/imagem-exemplo"
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "url",
                                        "example": "https://urldacampanha.com.beebe"
                                    },
                                    "impression_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "max_bid_value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.2
                                    },
                                    "category": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-da-categoria-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Categoria de Marketing"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "channel": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-canal-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Canal de cliente existente"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "delivery_type": {
                                        "description": "Deve ser apenas os objetos: {id: 'initial_print', name: 'Inicial'} ou {id: 'conversation_print', name: 'Conversacional'}",
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "initial_print"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Inicial"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Campanha de marketing atualizada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo media é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "BeeMedia"
                ],
                "summary": "Deleta uma campanha de marketing",
                "description": "Deleta uma campanha de marketing existente.",
                "operationId": "7248ea30b77733e2292c6a145402aca6",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID da campanha no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Campanha deletada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Campanha deletada com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Campanha não encontrada",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possivel abrir informações da campanha"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/broadcast-lists": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "List broadcast transmission lists",
                "description": "Returns paginated broadcast lists for the authenticated team, including `details_summary` aggregations from `list_details` (counts by `status_process.id` and `status_sending`). When `aggs=1`, the response key `data.aggregations` is populated with `total_lists`, `people_impacted` (count of `list_details` with `status_sending` in {enviado, entregue, lido}) and `by_channel` (impacted contacts broken down by `channel.id` / `channel.name`). When `list_id` is present, the aggregations on `list_details` are scoped to that list; otherwise they consolidate all details of the tenant.",
                "operationId": "ef408d8bff77777c1a9ed1c2794aa1eb",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "status.id",
                        "in": "query",
                        "description": "Filter by nested list status id",
                        "schema": {
                            "type": "string",
                            "example": "draft"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Search in list name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "aggs",
                        "in": "query",
                        "description": "When truthy (1/true/yes), embeds `aggregations_summary` in the response with `total_lists`, `people_impacted` and `by_channel`.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "list_id",
                        "in": "query",
                        "description": "Optional. When combined with `aggs=1`, scopes `people_impacted` and `by_channel` to the given list_id.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "data": {
                                            "properties": {
                                                "list": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "aggregations": {
                                                    "description": "Populated only when `aggs=1`.",
                                                    "properties": {
                                                        "total_lists": {
                                                            "type": "integer",
                                                            "example": 42
                                                        },
                                                        "people_impacted": {
                                                            "description": "Contacts with status_sending in {enviado, entregue, lido}.",
                                                            "type": "integer",
                                                            "example": 1273
                                                        },
                                                        "by_channel": {
                                                            "type": "array",
                                                            "items": {
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string",
                                                                        "example": "bmb"
                                                                    },
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "BM Especial"
                                                                    },
                                                                    "count": {
                                                                        "type": "integer",
                                                                        "example": 742
                                                                    }
                                                                },
                                                                "type": "object"
                                                            }
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Create broadcast list (draft)",
                "description": "Creates a list in `draft` with `lote_number` from the `broadcast_list` sequence. Requires `source.id` (`attach` or `api`); for `attach`, `attach[].url` must be present.",
                "operationId": "d6046b63b6684b7026090a18f3b0d861",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Campaign April"
                                    },
                                    "source": {
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "enum": [
                                                    "attach",
                                                    "api"
                                                ]
                                            },
                                            "name": {
                                                "type": "string",
                                                "nullable": true
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "attach": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "name": {
                                                    "type": "string"
                                                },
                                                "url": {
                                                    "type": "string",
                                                    "format": "uri"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "channel": {
                                        "type": "object"
                                    },
                                    "template": {
                                        "type": "object"
                                    },
                                    "send_mode": {
                                        "type": "string",
                                        "enum": [
                                            "immediate",
                                            "scheduled"
                                        ]
                                    },
                                    "scheduled_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Created"
                    },
                    "500": {
                        "description": "Erro (validação, regra de negócio ou excepção). Convenção BeeOne: todo erro = 500 com success=false + message."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/broadcast-lists/{broadcast_list}": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Show broadcast list",
                "description": "Returns the broadcast list document. When `with_details=1` is present, also embeds the contacts from `list_details` joined by `list_details.list_id = list.id` (paginated).",
                "operationId": "b939e5db8df9a2034fe6f91140bc6a2b",
                "parameters": [
                    {
                        "name": "broadcast_list",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "with_details",
                        "in": "query",
                        "description": "When truthy (1/true/yes), returns `data.details` with contacts linked to the list.",
                        "schema": {
                            "type": "boolean"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Page size for embedded details (default 10).",
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "description": "Current page for embedded details (default 1).",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "500": {
                        "description": "Erro (lista inexistente, de outro tenant, ou excepção). Convenção BeeOne: todo erro = 500 com success=false + message."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Update broadcast list",
                "description": "Bloqueado quando `status.id` é `pending` ou `cancel` (retorna 500 com message explícita, conforme convenção BeeOne).",
                "operationId": "de4444bc99a950ac7fc14288afbd66af",
                "parameters": [
                    {
                        "name": "broadcast_list",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Updated"
                    },
                    "500": {
                        "description": "Erro (estado não permite, validação, etc.). Convenção BeeOne: todo erro = 500 com success=false + message."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Cancel broadcast list",
                "description": "Soft cancel: seta `status.id` para `cancel`. Bloqueado quando `status.id = pending` (retorna 500 com message explícita, conforme convenção BeeOne).",
                "operationId": "4460c620bebc931c3939bab20762bf30",
                "parameters": [
                    {
                        "name": "broadcast_list",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Cancelled"
                    },
                    "500": {
                        "description": "Erro (lista pendente, inexistente, etc.). Convenção BeeOne: todo erro = 500 com success=false + message."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/action/broadcast-lists/{list_id}/send-list": {
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Submit broadcast list to pipeline (draft → pending)",
                "description": "Ação protegida por 2FA. Transiciona {@code status.id} de {@code draft} para {@code pending} e publica uma mensagem na fila de pipeline (o cron `beeone:broadcast-lists:enqueue-pending` fará o claim `pending → validating` na próxima execução, mas este endpoint também publica a mensagem imediatamente via `BroadcastListEnqueueService::enqueueListPending()` para agilizar o arranque). Valida canal, template, send_mode e prontidão da fonte (attach/api) antes de transicionar.",
                "operationId": "81dc0c2dae7cab6b2dfb76133359de40",
                "parameters": [
                    {
                        "name": "list_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-2FA-CODE",
                        "in": "header",
                        "description": "Código 2FA TOTP de 6 dígitos.",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "123456"
                        }
                    }
                ],
                "requestBody": {
                    "description": "Alternativa ao header: enviar `code` no corpo.",
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "code": {
                                        "description": "Código 2FA caso não seja enviado pelo header X-2FA-CODE.",
                                        "type": "string",
                                        "example": "123456"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Lista enfileirada"
                    },
                    "500": {
                        "description": "Erro de negócio (lista não está em draft, channel/template ausentes, source não configurada, lista inexistente, etc.) — convenção BeeOne: todo erro = 500 com success=false + message."
                    },
                    "498": {
                        "description": "Código 2FA ausente ou inválido (middleware 2fa)"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/broadcast-lists-detail/{list_id}/contacts": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "List contacts linked to a broadcast list",
                "description": "Returns the `list_details` (contacts) for the given `list_id`, scoped to the authenticated team. Supports pagination and optional detail filters.",
                "operationId": "1661b6c8a9d7171ff09b97153a516682",
                "parameters": [
                    {
                        "name": "list_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 30
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "phone",
                        "in": "query",
                        "description": "Optional phone filter",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status_process.id",
                        "in": "query",
                        "description": "Optional status filter",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success"
                    },
                    "500": {
                        "description": "Erro (lista inexistente, de outro tenant, etc.). Convenção BeeOne: todo erro = 500 com success=false + message."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Ingest contacts (JSON) into list_details",
                "description": "Requires `contacts[]` with `phone`. `list_id` comes from the URL. Allowed only while the parent list is in `draft`. Sets `source` to `api`.",
                "operationId": "0f706ca618c6be341e5cbd40a3b0fb64",
                "parameters": [
                    {
                        "name": "list_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "contacts"
                                ],
                                "properties": {
                                    "contacts": {
                                        "type": "array",
                                        "items": {
                                            "properties": {
                                                "phone": {
                                                    "type": "string",
                                                    "example": "+5511999990000"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "nullable": true
                                                },
                                                "federal_document": {
                                                    "type": "string",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Ingested"
                    },
                    "500": {
                        "description": "Erro (lista inexistente, não está em draft, source.id = attach, etc.). Convenção BeeOne: todo erro = 500 com success=false + message."
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/broadcast-lists-detail/{list_id}/logs": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Timeline / audit logs for a list",
                "operationId": "d314adbf973683a85319307208bdd1d8",
                "parameters": [
                    {
                        "name": "list_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "list_detail_id",
                        "in": "query",
                        "description": "Optional line filter",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 30
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/broadcast-lists-detail/channels": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "List channels for broadcast",
                "description": "Returns `customers_channels` for the team plus synthetic `bmb` (BM Especial / high_performance).",
                "operationId": "462d241c4db396f34241651e83f1fc38",
                "responses": {
                    "200": {
                        "description": "Success"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/contacts/{id}/talks": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Histórico de atendimentos do contato",
                "description": "Retorna todas as talks associadas ao contato, com resumo de totais por status e paginação. Filtros opcionais: status, período, paginação.",
                "operationId": "08c4c92f62d8bfbd27682c66af67e6d5",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "UUID do contato",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "550e8400-e29b-41d4-a716-446655440000"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filtrar por status da talk (open, closed, waiting)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "open",
                                "closed",
                                "waiting"
                            ],
                            "example": "closed"
                        }
                    },
                    {
                        "name": "date_start",
                        "in": "query",
                        "description": "Data inicial do filtro (formato: Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2026-01-01"
                        }
                    },
                    {
                        "name": "date_end",
                        "in": "query",
                        "description": "Data final do filtro (formato: Y-m-d)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2026-04-07"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Registros por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 20
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "description": "Página atual",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Histórico retornado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Histórico de atendimentos obtido com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "contact": {
                                                    "description": "Dados do contato",
                                                    "type": "object"
                                                },
                                                "summary": {
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer",
                                                            "example": 42
                                                        },
                                                        "by_status": {
                                                            "properties": {
                                                                "closed": {
                                                                    "type": "integer",
                                                                    "example": 38
                                                                },
                                                                "open": {
                                                                    "type": "integer",
                                                                    "example": 3
                                                                },
                                                                "waiting": {
                                                                    "type": "integer",
                                                                    "example": 1
                                                                }
                                                            },
                                                            "type": "object"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "talks": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "protocol": {
                                                                "type": "string"
                                                            },
                                                            "status": {
                                                                "type": "string",
                                                                "example": "closed"
                                                            },
                                                            "stage": {
                                                                "type": "string",
                                                                "example": "user_attendance"
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "ended_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "nullable": true
                                                            },
                                                            "channel_active": {
                                                                "type": "object"
                                                            },
                                                            "attendance": {
                                                                "type": "object"
                                                            },
                                                            "tabulation": {
                                                                "type": "object"
                                                            },
                                                            "kpi_tma": {
                                                                "type": "number",
                                                                "format": "float"
                                                            },
                                                            "assessment": {
                                                                "type": "number",
                                                                "format": "float"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "pagination": {
                                                    "properties": {
                                                        "total": {
                                                            "type": "integer",
                                                            "example": 42
                                                        },
                                                        "pageCurrent": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "pages": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "integer"
                                                            }
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Contato não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Contato não encontrado."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "contact_not_found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/closing-message-templates": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Lista os templates de mensagem de encerramento",
                "description": "Retorna uma lista paginada de templates de mensagem enviada ao encerrar uma talk. Filtros disponíveis via query string.",
                "operationId": "4329b1aa344706ce20a2a3c82f149279",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Busca textual por nome ou corpo do template",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "encerramento"
                        }
                    },
                    {
                        "name": "is_default",
                        "in": "query",
                        "description": "Filtra apenas o template padrão do time",
                        "required": false,
                        "schema": {
                            "type": "boolean",
                            "example": true
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Quantidade de registros por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "description": "Página atual",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Templates de encerramento obtidos com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "list": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "string",
                                                                "example": "550e8400-e29b-41d4-a716-446655440000"
                                                            },
                                                            "teams_id": {
                                                                "type": "string",
                                                                "example": "team-uuid"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Encerramento padrão"
                                                            },
                                                            "body": {
                                                                "type": "string",
                                                                "example": "Este atendimento foi encerrado. Obrigado pelo contato!"
                                                            },
                                                            "is_default": {
                                                                "type": "boolean",
                                                                "example": true
                                                            },
                                                            "status": {
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string",
                                                                        "example": "active"
                                                                    },
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "Ativo"
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            },
                                                            "updated_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "nullable": true
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "pagination": {
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Cria um novo template de mensagem de encerramento",
                "description": "Cria e armazena um template de texto usado para envio automático ao encerrar uma talk.",
                "operationId": "a2c3045b5ca6163e2ef8b8976ce0f233",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "body"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 120,
                                        "example": "Encerramento padrão"
                                    },
                                    "body": {
                                        "type": "string",
                                        "maxLength": 1000,
                                        "example": "Este atendimento foi encerrado. Obrigado pelo contato!"
                                    },
                                    "is_default": {
                                        "description": "Define se este é o template padrão do time",
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "status": {
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "enum": [
                                                    "active",
                                                    "inactive"
                                                ],
                                                "example": "active"
                                            },
                                            "name": {
                                                "type": "string",
                                                "enum": [
                                                    "Ativo",
                                                    "Inativo"
                                                ],
                                                "example": "Ativo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template criado com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "550e8400-e29b-41d4-a716-446655440000"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "O campo name é obrigatório."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/closing-message-templates/{id}": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Exibe um template de mensagem de encerramento",
                "description": "Retorna os dados de um template pelo seu ID.",
                "operationId": "716f43888292f02ea0d8a40e62a2b7b9",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "UUID do template",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "550e8400-e29b-41d4-a716-446655440000"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Template encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template obtido com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "550e8400-e29b-41d4-a716-446655440000"
                                                },
                                                "teams_id": {
                                                    "type": "string",
                                                    "example": "team-uuid"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Encerramento padrão"
                                                },
                                                "body": {
                                                    "type": "string",
                                                    "example": "Este atendimento foi encerrado."
                                                },
                                                "is_default": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "status": {
                                                    "properties": {
                                                        "id": {
                                                            "type": "string",
                                                            "example": "active"
                                                        },
                                                        "name": {
                                                            "type": "string",
                                                            "example": "Ativo"
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Template não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template não encontrado."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "template_not_found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Atualiza um template de mensagem de encerramento",
                "description": "Atualiza parcialmente os campos de um template existente. Requer 2FA.",
                "operationId": "e956382c5b65d84ab03702964016ef8f",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "UUID do template",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "550e8400-e29b-41d4-a716-446655440000"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 120,
                                        "example": "Encerramento atualizado"
                                    },
                                    "body": {
                                        "type": "string",
                                        "maxLength": 1000,
                                        "example": "Seu atendimento foi concluído!"
                                    },
                                    "is_default": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "status": {
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "enum": [
                                                    "active",
                                                    "inactive"
                                                ],
                                                "example": "inactive"
                                            },
                                            "name": {
                                                "type": "string",
                                                "enum": [
                                                    "Ativo",
                                                    "Inativo"
                                                ],
                                                "example": "Inativo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Template atualizado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template atualizado com sucesso."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Template não encontrado ou sem campos para atualizar",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template não encontrado."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "template_not_found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Remove um template de mensagem de encerramento",
                "description": "Soft-delete: marca o template como removido sem excluir o documento do Elasticsearch. Requer 2FA.",
                "operationId": "5c52921df114f79b9f2b84e4291ac284",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "UUID do template",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "550e8400-e29b-41d4-a716-446655440000"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Template removido com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template removido com sucesso."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Template não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Template não encontrado."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "template_not_found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/message-shortcuts": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Lista os atalhos de mensagem do time",
                "description": "Retorna uma lista paginada de atalhos de mensagem (respostas rápidas) do time logado.",
                "operationId": "5a1dfca57d3adf80321a2a9cf20c2103",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista retornada com sucesso"
                    },
                    "500": {
                        "description": "Erro interno no servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Cria um novo atalho de mensagem",
                "operationId": "3e32f1ffb947884e49f21b6183d08bac",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "body"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 120
                                    },
                                    "shortcut": {
                                        "description": "Código curto opcional ex: aguarde",
                                        "type": "string",
                                        "maxLength": 60
                                    },
                                    "body": {
                                        "type": "string",
                                        "maxLength": 2000
                                    },
                                    "status": {
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "enum": [
                                                    "active",
                                                    "inactive"
                                                ]
                                            },
                                            "name": {
                                                "type": "string",
                                                "enum": [
                                                    "Ativo",
                                                    "Inativo"
                                                ]
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Atalho criado com sucesso"
                    },
                    "422": {
                        "description": "Erro de validação"
                    },
                    "409": {
                        "description": "Shortcut já existente"
                    },
                    "500": {
                        "description": "Erro interno no servidor"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/message-shortcuts/{id}": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Exibe um atalho de mensagem",
                "operationId": "b8bfa512b46c00e6fe83f8299b344587",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Atalho encontrado"
                    },
                    "422": {
                        "description": "Atalho não encontrado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Atualiza um atalho de mensagem",
                "description": "Atualiza parcialmente um atalho. Requer 2FA.",
                "operationId": "4a1f3ef397de031e3433e64047bfc29f",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Atalho atualizado com sucesso"
                    },
                    "409": {
                        "description": "Shortcut conflita com outro existente"
                    },
                    "422": {
                        "description": "Atalho não encontrado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Remove (soft delete) um atalho de mensagem",
                "description": "Soft-delete: marca o atalho como removido. Requer 2FA.",
                "operationId": "9ca503f215283c9467c3a8587e5fcf9d",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Atalho removido com sucesso"
                    },
                    "422": {
                        "description": "Atalho não encontrado"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/conversation/talk-session/{talk_id}/close": {
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Encerra uma talk",
                "description": "Finaliza a talk. Se `closing_template_id` for informado, busca o texto no índice de templates e envia ao cliente antes de encerrar. Caso não seja informado, tenta usar o template padrão do time (is_default=true). Se nenhum template estiver disponível, encerra sem enviar mensagem.",
                "operationId": "1b0a123adeeefb70bc7604a55885b024",
                "parameters": [
                    {
                        "name": "talk_id",
                        "in": "path",
                        "description": "UUID da talk a ser encerrada",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "550e8400-e29b-41d4-a716-446655440000"
                        }
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "closing_template_id": {
                                        "description": "UUID do template de mensagem de encerramento. Opcional — se omitido, usa o template padrão do time ou não envia mensagem.",
                                        "type": "string",
                                        "example": "550e8400-e29b-41d4-a716-446655440000",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Talk encerrada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Talk finalizada com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "talk_id": {
                                                    "type": "string",
                                                    "example": "550e8400-e29b-41d4-a716-446655440000"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "closed"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Talk não encontrada ou já encerrada",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Talk não encontrada."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "talk_not_found"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/conversations/funnels": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Lista os funis do cliente",
                "description": "Retorna uma lista de funis com base nos parâmetros fornecidos.",
                "operationId": "3c683cd065e69c765a8ca10860895e95",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de funis retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Funis listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Cria um funil novo",
                "description": "Recebe os dados de um funil, valida se o funil é válido e o registra na base de dados.",
                "operationId": "4cb771cfb0a485d5d1997a51edfeb57e",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "stages"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Funil Teste"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status do funil"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "stages": {
                                        "type": "array",
                                        "items": {}
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Funil criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo media é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/conversations/funnels/{id}": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Mostra um funil selecionado",
                "description": "Retorna o funil do Id enviado.",
                "operationId": "30833ccf3cae919f4d89e5283e70bdf8",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do funil no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Funil retornado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Funil buscado com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "put": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Atualiza um funil de venda",
                "description": "Recebe os dados de um funil, valida se o funil é válido e a modifica na base de dados.",
                "operationId": "0fb048b1b4a35d078bfd6607e0c7ce54",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "stages"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Funil Teste"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status do funil"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "stages": {
                                        "type": "array",
                                        "items": {}
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Funil atualizado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo media é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "delete": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Deleta um funil",
                "description": "Deleta um funil existente.",
                "operationId": "4825b0f09b0a2c315091daba9267b6ca",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "ID do funil no índice Elasticsearch",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "sub_abc123456"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Funil deletado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Funil deletado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Funil não encontrado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Não foi possivel abrir informações do funil"
                                        },
                                        "error": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/finance/billing": {
            "post": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Solicita criação de cobrança Asaas (BeeOne)",
                "description": "Cria registo interno na fila `beeone_finance_charges` e publica job RabbitMQ `beeone.finance.asaas_billing`. Usa API key do índice `customer_config_beeone` do `teams_id` do utilizador autenticado. Não utiliza `config('asaas')` global.",
                "operationId": "903972fd081bf036fc68f769d56bb8de",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "full_name",
                                    "federal_document",
                                    "amount_usd",
                                    "usd_exchange_rate",
                                    "email",
                                    "phone",
                                    "description"
                                ],
                                "properties": {
                                    "full_name": {
                                        "type": "string",
                                        "example": "Maria Souza"
                                    },
                                    "federal_document": {
                                        "description": "CPF ou CNPJ (com ou sem máscara)",
                                        "type": "string",
                                        "example": "12345678901"
                                    },
                                    "amount_usd": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 99.5
                                    },
                                    "usd_exchange_rate": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 5.42
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "pagador@example.com"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "+5511999998888"
                                    },
                                    "description": {
                                        "description": "Texto livre do cliente (ex.: referência interna); gravado em beeone_finance_charges e enviado ao Asaas (máx. 500 caracteres na API)",
                                        "type": "string",
                                        "example": "Pedido #4521 — Plano Premium"
                                    },
                                    "due_date": {
                                        "description": "Data de vencimento (YYYY-MM-DD). Se omitida ou vazia, usa o dia corrente (mesmo dia da criação).",
                                        "type": "string",
                                        "format": "date",
                                        "example": "2026-04-13"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "202": {
                        "description": "Pedido aceite e enfileirado",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Billing request queued."
                                        },
                                        "data": {
                                            "properties": {
                                                "billing_request_id": {
                                                    "type": "string",
                                                    "format": "uuid"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "example": "queued"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Validação ou configuração Asaas em falta",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Utilizador sem teams_id",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "503": {
                        "description": "Fila indisponível após persistir o pedido",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/supervisor/dashboard": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Dashboard do supervisor",
                "description": "Retorna métricas consolidadas do time. Os campos `summary`, `tabulations` e `nps` respeitam o filtro de período quando informado. Os campos `evolution_30_days` e `nps_monthly` são sempre fixos (30 e 6 meses respectivamente).",
                "operationId": "d489fa4c0cb1fb8b18c00f7d45061137",
                "parameters": [
                    {
                        "name": "date_start",
                        "in": "query",
                        "description": "Data inicial do filtro (Y-m-d). Quando omitido, sem limite inferior.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2026-01-01"
                        }
                    },
                    {
                        "name": "date_end",
                        "in": "query",
                        "description": "Data final do filtro (Y-m-d). Quando omitido, usa hoje.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date",
                            "example": "2026-04-07"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Dados retornados com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/supervisor/dashboard/nps-talks": {
            "get": {
                "tags": [
                    "BeeOne"
                ],
                "summary": "Lista atendimentos avaliados (NPS)",
                "description": "Retorna a lista paginada de atendimentos finalizados que receberam avaliação (assessment).",
                "operationId": "4ad2a7dfd49def3c084f935124a242c2",
                "parameters": [
                    {
                        "name": "date_start",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_end",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "operator_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "queue_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 20
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Sucesso"
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeone/supervisor/dashboard/export": {
            "get": {
                "tags": [
                    "BeeOne - Supervisor"
                ],
                "summary": "Exporta talks da supervisão em CSV",
                "description": "Gera um CSV (encoding UTF-8 com BOM) com até 50.000 linhas das talks que respeitam os filtros informados. Mesmo conjunto de filtros do dashboard.",
                "operationId": "e744aa93557ba150cb81b516125ea39e",
                "parameters": [
                    {
                        "name": "date_start",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "date_end",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "operator_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "queue_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "description": "Filtra por status da talk (open ou closed). Sem o parâmetro retorna todos.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "open",
                                "closed"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Arquivo CSV em streaming",
                        "content": {
                            "text/csv": {}
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeplace/lookalike": {
            "get": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Lista Look a Likes",
                "description": "Retorna uma lista de Look a Likes com base nos parâmetros fornecidos.",
                "operationId": "listLookALike",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de Look a Likes retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Look a Likes listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Aciona a queue de lookalike",
                "description": "Aciona a fila de lookalike para a sua execução manual.",
                "operationId": "storeLookALike",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "order_id",
                                    "teams_id"
                                ],
                                "properties": {
                                    "order_id": {
                                        "description": "Id da Sales Orders que pretende converter em look a like",
                                        "type": "string",
                                        "example": "081963"
                                    },
                                    "person_data": {
                                        "description": "Procure pela CustomerDataEnrichmentModel, é necessário enviar um objeto desse formato a fila",
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Look a Like criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Registrado com sucesso."
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeplace/lookalike-details": {
            "get": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Lista Look a Likes",
                "description": "Retorna uma lista dos detalhes de Look a Likes com base nos parâmetros fornecidos.",
                "operationId": "listLookALikeDetails",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de detalhes dos Look a Likes retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Look a Likes listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeplace/reports/messages": {
            "get": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Lista os relatórios de mensagens agendadas do tenant autenticado",
                "description": "Retorna a página atual do índice `reports_manager` filtrando por `report_type = talks_messages_schedule` e `teams_id` do utilizador autenticado (herdado pelo `ElasticsearchTrait`). Quando `aggs=1`, devolve em `data.aggregations.by_status` a contagem **por estado** usando agregação `terms` em `status.name` (e `terms` interno em `status.id` para devolver o id estável). Os 4 estados conhecidos (`pending`, `processing`, `ready`, `error`) são sempre devolvidos — com `count: 0` quando não houver documentos —, para a UI montar contadores estáveis. **`status` é gravado como objeto plano (`{ id, name, message }`)** no índice, não como array.",
                "operationId": "indexBeePlaceReportMessagesSchedule",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "description": "Tamanho da página (default 10).",
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    },
                    {
                        "name": "pageCurrent",
                        "in": "query",
                        "description": "Página actual (default 1).",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "date_start",
                        "in": "query",
                        "description": "Filtro opcional por `created_at` do **registo do relatório** (não do índice de origem).",
                        "schema": {
                            "type": "string",
                            "example": "2026-04-01"
                        }
                    },
                    {
                        "name": "date_end",
                        "in": "query",
                        "description": "Filtro opcional por `created_at` do **registo do relatório**.",
                        "schema": {
                            "type": "string",
                            "example": "2026-04-30"
                        }
                    },
                    {
                        "name": "status.id",
                        "in": "query",
                        "description": "Filtra por um ou mais estados (`pending`, `processing`, `ready`, `error`).",
                        "schema": {
                            "type": "string",
                            "example": "ready"
                        }
                    },
                    {
                        "name": "report_id",
                        "in": "query",
                        "description": "Filtra um relatório específico pelo `_id`.",
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "name": "aggs",
                        "in": "query",
                        "description": "Quando *truthy* (`1`/`true`/`yes`), dispara a agregação `terms` por `status.name` em `data.aggregations.by_status`. Sem este parâmetro, só vem a listagem.",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Sucesso.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Relatórios carregados com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "list": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "example": "550e8400-e29b-41d4-a716-446655440000"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Mensagens agendadas — 01/04/2026 a 30/04/2026"
                                                            },
                                                            "report_type": {
                                                                "type": "string",
                                                                "example": "talks_messages_schedule"
                                                            },
                                                            "index_source": {
                                                                "type": "string",
                                                                "example": "talks_messages_schedule"
                                                            },
                                                            "filters": {
                                                                "properties": {
                                                                    "date_start": {
                                                                        "type": "string",
                                                                        "format": "date-time"
                                                                    },
                                                                    "date_end": {
                                                                        "type": "string",
                                                                        "format": "date-time"
                                                                    },
                                                                    "timezone": {
                                                                        "type": "string",
                                                                        "example": "America/Sao_Paulo"
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "requested_by": {
                                                                "type": "array",
                                                                "items": {
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "string"
                                                                        },
                                                                        "name": {
                                                                            "type": "string"
                                                                        },
                                                                        "email": {
                                                                            "type": "string",
                                                                            "format": "email"
                                                                        }
                                                                    },
                                                                    "type": "object"
                                                                }
                                                            },
                                                            "total_rows": {
                                                                "type": "integer",
                                                                "example": 1820
                                                            },
                                                            "file": {
                                                                "properties": {
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "report_messages_schedule_550e8400_30_04_2026_05_01_03.xlsx"
                                                                    },
                                                                    "extension": {
                                                                        "type": "string",
                                                                        "example": "xlsx"
                                                                    },
                                                                    "size_bytes": {
                                                                        "type": "integer",
                                                                        "example": 184321
                                                                    },
                                                                    "url": {
                                                                        "description": "URL **privada** no DigitalOcean Spaces — consumir sempre via `actions/download`, nunca diretamente.",
                                                                        "type": "string",
                                                                        "format": "uri"
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "status": {
                                                                "description": "Objeto plano com o estado actual do relatório.",
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "pending",
                                                                            "processing",
                                                                            "ready",
                                                                            "error"
                                                                        ]
                                                                    },
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "Pronto"
                                                                    },
                                                                    "message": {
                                                                        "type": "string",
                                                                        "nullable": true
                                                                    }
                                                                },
                                                                "type": "object"
                                                            },
                                                            "started_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "nullable": true
                                                            },
                                                            "finished_at": {
                                                                "type": "string",
                                                                "format": "date-time",
                                                                "nullable": true
                                                            },
                                                            "created_at": {
                                                                "type": "string",
                                                                "format": "date-time"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "pagination": {
                                                    "properties": {
                                                        "title": {
                                                            "type": "string",
                                                            "example": "Exibindo 1 até 10 de 28"
                                                        },
                                                        "pages": {
                                                            "type": "array",
                                                            "items": {
                                                                "type": "integer"
                                                            }
                                                        },
                                                        "pageCurrent": {
                                                            "type": "integer",
                                                            "example": 1
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "aggregations": {
                                                    "description": "Populado apenas quando `aggs=1`. Sempre contém os 4 estados conhecidos (com `count: 0` quando vazio).",
                                                    "properties": {
                                                        "by_status": {
                                                            "type": "array",
                                                            "items": {
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string",
                                                                        "enum": [
                                                                            "pending",
                                                                            "processing",
                                                                            "ready",
                                                                            "error"
                                                                        ]
                                                                    },
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "Pronto"
                                                                    },
                                                                    "count": {
                                                                        "type": "integer",
                                                                        "example": 24
                                                                    }
                                                                },
                                                                "type": "object"
                                                            }
                                                        }
                                                    },
                                                    "type": "object"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno (ES indisponível, mapping ausente, etc.).",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Solicita a geração assíncrona do relatório de mensagens agendadas",
                "description": "Valida o intervalo de datas, persiste um documento `pending` em `reports_manager` e enfileira o trabalho pesado (consulta ES `talks_messages_schedule`, geração XLSX, upload no DigitalOcean Spaces e envio do anexo por e-mail). A resposta retorna imediatamente o `report_id` para acompanhamento via `GET /api/beeplace/reports/messages` e download via `GET /api/beeplace/reports/{report_id}/actions/download`.",
                "operationId": "storeBeePlaceReportMessagesSchedule",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "date_start",
                                    "date_end"
                                ],
                                "properties": {
                                    "date_start": {
                                        "description": "Limite inferior do filtro aplicado a `created_at` do índice `talks_messages_schedule`. Aceita `Y-m-d` (ancorado em 00:00:00 do `timezone`) ou ISO-8601.",
                                        "type": "string",
                                        "example": "2026-04-01"
                                    },
                                    "date_end": {
                                        "description": "Limite superior do filtro. Deve ser `>= date_start`. Aceita `Y-m-d` (ancorado em 23:59:59 do `timezone`) ou ISO-8601.",
                                        "type": "string",
                                        "example": "2026-04-30"
                                    },
                                    "timezone": {
                                        "description": "Fuso usado para normalizar as datas em UTC e na apresentação no XLSX. Default: `config('app.timezone')`.",
                                        "type": "string",
                                        "example": "America/Sao_Paulo",
                                        "nullable": true
                                    },
                                    "name": {
                                        "description": "Rótulo humano opcional do relatório (sobrescreve o default `Mensagens agendadas — DD/MM/AAAA a DD/MM/AAAA`).",
                                        "type": "string",
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Solicitação registrada com sucesso e job publicado na fila RabbitMQ.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Recebemos sua solicitação com sucesso. Em breve você receberá o relatório em seu e-mail."
                                        },
                                        "data": {
                                            "properties": {
                                                "report_id": {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "example": "550e8400-e29b-41d4-a716-446655440000"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "pending"
                                                    ],
                                                    "example": "pending"
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação (campos ausentes, formato inválido ou `date_end < date_start`).",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "date_start": [
                                                    "O campo date_start é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Falha ao gravar `reports_manager` ou ao publicar na fila.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeplace/reports/{report_id}/actions/download": {
            "get": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Proxy autenticado para baixar o XLSX do relatório",
                "description": "Carrega o documento `reports_manager` por `_id`, valida que o `teams_id` do utilizador autenticado é o dono do relatório e — quando `status.id = ready` — faz `stream` do XLSX a partir do bucket privado da DigitalOcean Spaces. Segue o mesmo padrão da rota `GET /beeone/attendance/funnel/messages/{message_id}/actions/media`: o frontend nunca recebe a URL bruta do Spaces; consome sempre por aqui. Quando o relatório ainda não está `ready`, devolve **HTTP 200 em JSON** com `success=false` e `data.status` actual (alinhado à convenção do `ExportController`).",
                "operationId": "downloadBeePlaceReportMessagesSchedule",
                "parameters": [
                    {
                        "name": "report_id",
                        "in": "path",
                        "description": "`_id` do documento `reports_manager` (UUID retornado pelo `POST /api/beeplace/reports/messages`).",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Quando `status.id = ready`: o corpo é o **binário XLSX** com `Content-Disposition: attachment` e `Cache-Control: no-store`. Quando o relatório ainda não está pronto, devolve JSON com `success=false` e `data.status` (`pending`/`processing`/`error`).",
                        "content": {
                            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            },
                            "application/json": {
                                "schema": {
                                    "description": "Resposta JSON usada quando o relatório ainda não está `ready`.",
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Relatório ainda não está pronto."
                                        },
                                        "data": {
                                            "properties": {
                                                "report_id": {
                                                    "type": "string",
                                                    "format": "uuid"
                                                },
                                                "status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "pending",
                                                        "processing",
                                                        "error"
                                                    ]
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "Relatório inexistente, removido ou pertencente a outro `teams_id`.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Relatório não encontrado."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "`report_id` inválido (string vazia).",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Identificador do relatório inválido."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "502": {
                        "description": "Falha ao obter o ficheiro do DigitalOcean Spaces (URL quebrada, credenciais inválidas, bucket fora).",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Falha ao obter o arquivo do armazenamento."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno inesperado.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/beeplace/sales-orders": {
            "post": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Cria um novo pedido de venda",
                "description": "Recebe os dados de um pedido, preenche valores faltantes, valida os campos e processa o pedido para armazenamento ou integração.",
                "operationId": "storeSalesOrder",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "products",
                                    "subtotal",
                                    "amount",
                                    "discount"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string",
                                        "format": "uuid",
                                        "example": "e86a9bfa-5c64-4f8f-9fcd-a9d1fd6812d3"
                                    },
                                    "created_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2025-06-03T17:46:53.978395Z"
                                    },
                                    "updated_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2025-06-03T17:46:53.978395Z"
                                    },
                                    "removed": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "teams_id": {
                                        "type": "string",
                                        "example": "88ab93f2-66fc-45b7-aee2-e183a15d48fd"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Nome completo do cliente"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "new"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "novo"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "customer": {
                                        "required": [
                                            "first_name"
                                        ],
                                        "properties": {
                                            "first_name": {
                                                "type": "string",
                                                "example": "Leandro Santos"
                                            },
                                            "last_name": {
                                                "type": "string"
                                            },
                                            "phone": {
                                                "type": "string"
                                            },
                                            "email": {
                                                "type": "string"
                                            },
                                            "federal_document": {
                                                "type": "string",
                                                "example": "12345678900"
                                            },
                                            "buyer_accepts_marketing": {
                                                "type": "boolean",
                                                "example": true
                                            },
                                            "location": {
                                                "type": "string"
                                            },
                                            "state": {
                                                "type": "string",
                                                "example": "SP"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "subtotal": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.02
                                    },
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.02
                                    },
                                    "discount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 0
                                    },
                                    "products": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "name",
                                                "sku",
                                                "quantity",
                                                "price"
                                            ],
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "example": "Nome do Produto"
                                                },
                                                "sku": {
                                                    "type": "string",
                                                    "example": "sku01"
                                                },
                                                "quantity": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "price": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 10.01
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Pedido criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "customer.first_name": [
                                                    "O campo first_name é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/beeplace/sales-orders": {
            "post": {
                "tags": [
                    "BeePlace"
                ],
                "summary": "Cria um novo pedido de venda",
                "description": "Recebe os dados de um pedido, preenche valores faltantes, valida os campos e processa o pedido para armazenamento ou integração.",
                "operationId": "8fdf75a815ec9dc8b703ff9febfed870",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "status",
                                    "products",
                                    "subtotal",
                                    "amount",
                                    "discount"
                                ],
                                "properties": {
                                    "id": {
                                        "type": "string",
                                        "format": "uuid",
                                        "example": "e86a9bfa-5c64-4f8f-9fcd-a9d1fd6812d3"
                                    },
                                    "created_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2025-06-03T17:46:53.978395Z"
                                    },
                                    "updated_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "example": "2025-06-03T17:46:53.978395Z"
                                    },
                                    "removed": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "teams_id": {
                                        "type": "string",
                                        "example": "88ab93f2-66fc-45b7-aee2-e183a15d48fd"
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Nome completo do cliente"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "new"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "novo"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "customer": {
                                        "required": [
                                            "first_name"
                                        ],
                                        "properties": {
                                            "first_name": {
                                                "type": "string",
                                                "example": "Leandro Santos"
                                            },
                                            "last_name": {
                                                "type": "string"
                                            },
                                            "phone": {
                                                "type": "string"
                                            },
                                            "email": {
                                                "type": "string"
                                            },
                                            "federal_document": {
                                                "type": "string",
                                                "example": "12345678900"
                                            },
                                            "buyer_accepts_marketing": {
                                                "type": "boolean",
                                                "example": true
                                            },
                                            "location": {
                                                "type": "string"
                                            },
                                            "state": {
                                                "type": "string",
                                                "example": "SP"
                                            }
                                        },
                                        "type": "object"
                                    },
                                    "subtotal": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.02
                                    },
                                    "amount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.02
                                    },
                                    "discount": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 0
                                    },
                                    "products": {
                                        "type": "array",
                                        "items": {
                                            "required": [
                                                "name",
                                                "sku",
                                                "quantity",
                                                "price"
                                            ],
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "example": "Nome do Produto"
                                                },
                                                "sku": {
                                                    "type": "string",
                                                    "example": "sku01"
                                                },
                                                "quantity": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "price": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "example": 10.01
                                                }
                                            },
                                            "type": "object"
                                        }
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Pedido criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "customer.first_name": [
                                                    "O campo first_name é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/communication-templates/rcs/channel/{channelId}": {
            "get": {
                "tags": [
                    "Communication Templates"
                ],
                "summary": "Lista as templates de RCS",
                "description": "Retorna uma lista de templates de RCS com base nos parâmetros fornecidos.",
                "operationId": "9d9324a2e930fabe08758435e1882083",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de templates retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Templates de RCS listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/communication-templates/customers-channels/rcs-templates/{channelId}": {
            "post": {
                "tags": [
                    "Communication Templates"
                ],
                "summary": "Cria um novo template RCS",
                "description": "Recebe os dados de um template, valida se o template é válido e o registra na base de dados.",
                "operationId": "5ea884a27a96d10e12f5291f75d88aec",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "message",
                                    "status",
                                    "channel_customer_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Template exemplo"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Mensagem de demonstração"
                                    },
                                    "channel_customer_id": {
                                        "type": "string",
                                        "example": "id-exemplo-00001"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status exemplo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template criado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "status": [
                                                    "O campo status é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/communication-templates/rcs/{id}": {
            "put": {
                "tags": [
                    "Communication Templates"
                ],
                "summary": "Atualiza um template de RCS",
                "description": "Recebe os dados de um template RCS, valida se o template é válido e o modifica na base de dados.",
                "operationId": "51dcf3ce9bfde14db8c161d4817a851c",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "name",
                                    "message",
                                    "status",
                                    "channel_customer_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Template exemplo"
                                    },
                                    "message": {
                                        "type": "string",
                                        "example": "Mensagem de demonstração"
                                    },
                                    "channel_customer_id": {
                                        "type": "string",
                                        "example": "id-exemplo-00001"
                                    },
                                    "status": {
                                        "required": [
                                            "id",
                                            "name"
                                        ],
                                        "properties": {
                                            "id": {
                                                "type": "string",
                                                "example": "id-do-status-2222"
                                            },
                                            "name": {
                                                "type": "string",
                                                "example": "Status exemplo"
                                            }
                                        },
                                        "type": "object"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Template atualizada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object",
                                            "example": {
                                                "media": [
                                                    "O campo status é obrigatório."
                                                ]
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/access/subscriptions-plans": {
            "get": {
                "tags": [
                    "Access"
                ],
                "summary": "Lista planos",
                "description": "Retorna uma lista de planos com base nos parâmetros fornecidos.",
                "operationId": "listPlans",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "description": "Número da página para paginação",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Número de itens por página",
                        "required": false,
                        "schema": {
                            "type": "integer",
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lista de planos retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Planos listados com sucesso."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação dos dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro de validação dos dados."
                                        },
                                        "errors": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno no servidor",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        },
                                        "error": {
                                            "type": "string",
                                            "example": "  Exception message"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "tokenSystem": []
                    }
                ]
            }
        },
        "/api/profile/my": {
            "get": {
                "tags": [
                    "Profile"
                ],
                "summary": "Retorna os dados do usuário autenticado",
                "operationId": "e8de49a1c1196f46e96aba6168110f7a",
                "responses": {
                    "200": {
                        "description": "Dados recuperados com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Dados Recuperados com sucesso."
                                        },
                                        "data": {
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "auth-6830b8b92e9eb"
                                                },
                                                "teams_id": {
                                                    "type": "string",
                                                    "example": "3"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2025-05-23T18:04:41+00:00"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Leandro Administrador"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "usuario@dominio.com"
                                                },
                                                "privileges": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "string",
                                                                "example": "admin"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Administrador"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "customers": {
                                                    "type": "array",
                                                    "items": {
                                                        "properties": {
                                                            "id": {
                                                                "type": "string",
                                                                "example": "3"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "BeBee"
                                                            }
                                                        },
                                                        "type": "object"
                                                    }
                                                },
                                                "updated_at": {
                                                    "type": "string",
                                                    "format": "date-time",
                                                    "example": "2025-05-26T16:38:08+0000"
                                                },
                                                "two_factor_secret": {
                                                    "properties": {
                                                        "is_enabled": {
                                                            "type": "boolean",
                                                            "example": true
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                "birthday": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                },
                                                "bio": {
                                                    "type": "string",
                                                    "example": null,
                                                    "nullable": true
                                                }
                                            },
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno ao recuperar dados",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Erro interno no servidor."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/access/login": {
            "post": {
                "tags": [
                    "Access"
                ],
                "summary": "Autentica o usuário e retorna o token",
                "description": "Endpoint para login. Requer envio do **TOKEN_SYSTEM** (interno) no header `Authorization: Bearer <TOKEN_SYSTEM>` — ver descrição do esquema `tokenSystem`. Retorna o token JWT do usuário em caso de sucesso.",
                "operationId": "accessLogin",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email",
                                    "password"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "email@email.com.br"
                                    },
                                    "password": {
                                        "type": "string",
                                        "format": "password",
                                        "example": "*******"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Token retornado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "access_token": {
                                            "type": "string",
                                            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOm51bGwsIm5hbWUiOiJ0b2tlbiIs..."
                                        },
                                        "token_type": {
                                            "type": "string",
                                            "example": "Bearer"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Credenciais inválidas ou erro na autenticação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "message": {
                                            "type": "string",
                                            "example": "Credenciais inválidas."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "tokenSystem": []
                    }
                ]
            }
        },
        "/api/access/valid-twofa": {
            "post": {
                "tags": [
                    "Access"
                ],
                "summary": "Valida o código 2FA do usuário",
                "description": "Valida o código TOTP do usuário (6 dígitos). Requer envio do **TOKEN_SYSTEM** (interno) no header `Authorization: Bearer <TOKEN_SYSTEM>`. O código pode ser enviado pelo header `X-2FA-CODE` ou pelo campo `code` no JSON.",
                "operationId": "accessValidTwoFactor",
                "parameters": [
                    {
                        "name": "X-2FA-CODE",
                        "in": "header",
                        "description": "Código TOTP (6 dígitos). Alternativa ao campo `code` no body.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "123456"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "required": [
                                    "email"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "email@email.com.br"
                                    },
                                    "code": {
                                        "description": "Código TOTP (alternativa ao header).",
                                        "type": "string",
                                        "example": "123456"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Código 2FA validado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "2FA validado com sucesso."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "Código inválido ou erro na validação",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string",
                                            "example": "Código inválido."
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "tokenSystem": []
                    }
                ]
            }
        },
        "/api/access/white-label": {
            "get": {
                "tags": [
                    "Access"
                ],
                "summary": "Retorna a configuração de white-label da plataforma",
                "description": "Retorna a configuração visual/branding (white-label) com base no header `Platafform`. Requer envio do **TOKEN_SYSTEM** (interno) no header `Authorization: Bearer <TOKEN_SYSTEM>`.",
                "operationId": "accessGetWhiteLabel",
                "parameters": [
                    {
                        "name": "Platafform",
                        "in": "header",
                        "description": "URL da plataforma (default: `beeplace.ai`)",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "beeplace.ai"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Configuração retornada com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Erro interno",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "success": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "message": {
                                            "type": "string"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "tokenSystem": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "description": "Token JWT do usuário autenticado (obtido via /api/access/login). Enviar no header `Authorization: Bearer <token>`.",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            },
            "tokenSystem": {
                "type": "http",
                "description": "**Token System (interno)** — usado pelos endpoints de `routes/api/access.php` (login, valid-twofa, white-label, subscriptions-plans). Enviar no header `Authorization: Bearer <TOKEN_SYSTEM>`. <br><br> **Valores por ambiente** (copiar/colar no botão `Authorize` do Swagger UI): <br><br> **Produção** (`https://api-v3.bebee.com.br`): <br> `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhYmlsaXRpZXMiOlsiaW50ZXJuYWwiXSwiaWF0IjoxNzUwODY4NTk2LCJ1c2VyIjp7ImlkIjoic3lzdGVtIiwibmFtZSI6IlN5c3RlbSJ9fQ.kTxs5Awp2neFdCjYwxa8veTGTmrg6l_D1YyU_J0Vj1Q` <br><br> **Homologação** (`https://api-beeplace.bebee.tmp.br`): <br> `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhYmlsaXRpZXMiOlsiaW50ZXJuYWwiXSwiaWF0IjoxNzUwNDE3MTIzLCJ1c2VyIjp7ImlkIjoic3lzdGVtIiwibmFtZSI6IlN5c3RlbSJ9fQ.RIDsnx4xYakXieUrbnAZQvM1l-9IFEChLsdY2xzJ_Z0`",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    },
    "tags": [
        {
            "name": "Access",
            "description": "Rotas públicas de autenticação e configuração inicial (routes/api/access.php)"
        },
        {
            "name": "Admin",
            "description": "Painel administrativo do cliente ativo (routes/api/admin.php)"
        },
        {
            "name": "Backoffice",
            "description": "Operação interna BeBee — backoffice (routes/api/backoffice.php)"
        },
        {
            "name": "BeeMedia",
            "description": "Produto BeeMedia (routes/api/beemedia.php)"
        },
        {
            "name": "BeeOne",
            "description": "Produto BeeOne — automações, conversas, contatos (routes/api/beeone.php)"
        },
        {
            "name": "BeePlace",
            "description": "Produto BeePlace — vendas e campanhas (routes/api/beeplace.php)"
        },
        {
            "name": "Communication Templates",
            "description": "Templates de comunicação (RCS, etc.) (routes/api/communication-templates.php)"
        },
        {
            "name": "Profile",
            "description": "Perfil e personalização do usuário autenticado (routes/api/profile.php)"
        },
        {
            "name": "BeeOne - Supervisor",
            "description": "BeeOne - Supervisor"
        }
    ]
}