{
    "info": {
        "name": "Viagilize API V1",
        "description": "Collection Postman gerada automaticamente a partir da documentação oficial.",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "variable": [
        {
            "key": "base_url",
            "value": "https://seu-tenant.viagilize.com.br/api/v1"
        },
        {
            "key": "api_token",
            "value": "vgl_seu_token_aqui"
        }
    ],
    "item": [
        {
            "name": "Excursões",
            "description": "Gerenciamento de excursões e pacotes de viagem",
            "item": [
                {
                    "name": "GET /excursoes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes?page=&per_page=&status=&tipo_excursao=&categoria_id=&search=&data_inicio_de=&data_inicio_ate=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Número da página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens por página (max: 100)",
                                    "disabled": true
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "rascunho, publicada, cancelada, finalizada",
                                    "disabled": true
                                },
                                {
                                    "key": "tipo_excursao",
                                    "value": "",
                                    "description": "excursao ou pacote_viagem",
                                    "disabled": true
                                },
                                {
                                    "key": "categoria_id",
                                    "value": "",
                                    "description": "Filtrar por categoria",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por nome, cidade ou destino",
                                    "disabled": true
                                },
                                {
                                    "key": "data_inicio_de",
                                    "value": "",
                                    "description": "Data de início mínima (Y-m-d)",
                                    "disabled": true
                                },
                                {
                                    "key": "data_inicio_ate",
                                    "value": "",
                                    "description": "Data de início máxima (Y-m-d)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Retorna uma lista paginada de excursões/pacotes com filtros."
                    }
                },
                {
                    "name": "GET /excursoes/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{id}?include=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{id}"
                            ],
                            "query": [
                                {
                                    "key": "include",
                                    "value": "",
                                    "description": "CSV: voos,cruzeiro,componentes,itinerario,cotacoes,allotments,vouchers",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Retorna a excursão/pacote com categorias, embarques, preços, guias, transportes, paradas. Use include=... para carregar relações adicionais (voos, cruzeiro, componentes, itinerario, cotacoes, allotments, vouchers)."
                    }
                },
                {
                    "name": "GET /excursoes/{id}/stats",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{id}/stats",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{id}",
                                "stats"
                            ],
                            "query": []
                        },
                        "description": "Retorna estatísticas agregadas: vagas, valores, confirmações."
                    }
                },
                {
                    "name": "POST /excursoes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes"
                            ],
                            "query": []
                        },
                        "description": "Cria uma excursão (rodoviária) ou pacote de viagem. Pode receber arrays aninhados (transportes, embarques, precos) para criar tudo em uma única chamada, similar ao wizard do admin.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"slug\": null,\n    \"tipo_excursao\": null,\n    \"descricao\": null,\n    \"imagem\": null,\n    \"galeria\": null,\n    \"pais\": null,\n    \"estado\": null,\n    \"cidade\": null,\n    \"local\": null,\n    \"data_inicio\": \"<date>\",\n    \"data_fim\": null,\n    \"hora_inicio\": null,\n    \"hora_fim\": null,\n    \"vagas_maximas\": null,\n    \"permitir_escolha_assento\": null,\n    \"escolha_assento_dias_antes\": null,\n    \"permitir_troca_transporte\": null,\n    \"status\": null,\n    \"categoria_ids\": null,\n    \"parcelas_max\": null,\n    \"acrescimo_tipo\": null,\n    \"acrescimo_parcela\": null,\n    \"observacoes\": null,\n    \"duracao_noites\": null,\n    \"destino_cidade\": null,\n    \"destino_estado\": null,\n    \"destino_pais\": null,\n    \"regime_hospedagem\": null,\n    \"categoria_hotel\": null,\n    \"nome_hotel\": null,\n    \"incluso\": null,\n    \"nao_incluso\": null,\n    \"documentos_necessarios\": null,\n    \"observacoes_pacote\": null,\n    \"mostrar_site\": null,\n    \"mostrar_vagas_disponiveis\": null,\n    \"vagas_alerta_poucas\": null,\n    \"vagas_alerta_ultimas\": null,\n    \"vagas_reservadas\": null,\n    \"desativar_vendas_dias_antes\": null,\n    \"prazo_pagamento_minutos\": null,\n    \"observacoes_internas\": null,\n    \"exigir_contrato\": null,\n    \"exigir_documentos\": null,\n    \"incluir_observacoes_no_cartao\": null,\n    \"duracao_dias\": null,\n    \"recorrencia_config\": null,\n    \"recorrencia_ativa\": null,\n    \"endereco\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"video\": null,\n    \"contrato_template_id\": null,\n    \"whatsapp\": null,\n    \"mostrar_whatsapp\": null,\n    \"modo_venda\": null,\n    \"modo_preco\": null,\n    \"preco_display_modo\": null,\n    \"preco_display_intervalo\": null,\n    \"escolha_assento_a_partir_de\": null,\n    \"guias_contam_vaga\": null,\n    \"publicar_em\": null,\n    \"despublicar_em\": null,\n    \"seguro_link\": null,\n    \"seguro_label\": null,\n    \"external_ref\": null,\n    \"external_source\": null,\n    \"categorias\": null,\n    \"transportes\": null,\n    \"embarques\": null,\n    \"precos\": null,\n    \"conteudo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente uma excursão. **Aceita todos os campos do POST** (todos opcionais). Envie só os que deseja alterar. Também aceita `conteudo` inline pra atualizar a vitrine pública na mesma chamada.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"slug\": null,\n    \"tipo_excursao\": null,\n    \"descricao\": null,\n    \"imagem\": null,\n    \"galeria\": null,\n    \"pais\": null,\n    \"estado\": null,\n    \"cidade\": null,\n    \"local\": null,\n    \"endereco\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"data_inicio\": null,\n    \"data_fim\": null,\n    \"hora_inicio\": null,\n    \"hora_fim\": null,\n    \"status\": null,\n    \"publicar_em\": null,\n    \"despublicar_em\": null,\n    \"vagas_maximas\": null,\n    \"vagas_reservadas\": null,\n    \"mostrar_site\": null,\n    \"mostrar_vagas_disponiveis\": null,\n    \"vagas_alerta_poucas\": null,\n    \"vagas_alerta_ultimas\": null,\n    \"observacoes\": null,\n    \"observacoes_internas\": null,\n    \"incluir_observacoes_no_cartao\": null,\n    \"exigir_contrato\": null,\n    \"exigir_documentos\": null,\n    \"contrato_template_id\": null,\n    \"desativar_vendas_dias_antes\": null,\n    \"prazo_pagamento_minutos\": null,\n    \"duracao_dias\": null,\n    \"recorrencia_config\": null,\n    \"recorrencia_ativa\": null,\n    \"permitir_escolha_assento\": null,\n    \"escolha_assento_dias_antes\": null,\n    \"escolha_assento_a_partir_de\": null,\n    \"permitir_troca_transporte\": null,\n    \"guias_contam_vaga\": null,\n    \"parcelas_max\": null,\n    \"acrescimo_tipo\": null,\n    \"acrescimo_parcela\": null,\n    \"modo_preco\": null,\n    \"preco_display_modo\": null,\n    \"preco_display_intervalo\": null,\n    \"video\": null,\n    \"whatsapp\": null,\n    \"mostrar_whatsapp\": null,\n    \"duracao_noites\": null,\n    \"destino_cidade\": null,\n    \"destino_estado\": null,\n    \"destino_pais\": null,\n    \"regime_hospedagem\": null,\n    \"categoria_hotel\": null,\n    \"nome_hotel\": null,\n    \"incluso\": null,\n    \"nao_incluso\": null,\n    \"documentos_necessarios\": null,\n    \"observacoes_pacote\": null,\n    \"seguro_link\": null,\n    \"seguro_label\": null,\n    \"categoria_ids\": null,\n    \"external_ref\": null,\n    \"external_source\": null,\n    \"conteudo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove uma excursão. Apenas excursões sem passageiros podem ser excluídas."
                    }
                }
            ]
        },
        {
            "name": "Conteúdo (Excursão)",
            "description": "Página de conteúdo público da excursão (atrações, inclusos, regras, etc) que renderiza a vitrine. 1:1 com excursão.",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/conteudo",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/conteudo",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "conteudo"
                            ],
                            "query": []
                        },
                        "description": "Retorna o conteúdo público da excursão (página da vitrine). Se ainda não foi criado, retorna estrutura vazia com defaults."
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/conteudo",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/conteudo",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "conteudo"
                            ],
                            "query": []
                        },
                        "description": "Cria ou atualiza o conteúdo público (upsert por excursao_id). **Os 5 campos de lista** (`o_que_esperar`, `regras`, `o_que_levar`, `inclusos`, `nao_inclusos`) aceitam 2 formatos: string com `\\n` separador OU array via `{campo}_items[]` (será convertido automaticamente).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"modo\": null,\n    \"conteudo_livre\": null,\n    \"titulo\": null,\n    \"subtitulo\": null,\n    \"resumo\": null,\n    \"descricao_completa\": null,\n    \"atracoes\": null,\n    \"legenda_atracoes\": null,\n    \"o_que_esperar\": null,\n    \"o_que_esperar_items\": null,\n    \"legenda_o_que_esperar\": null,\n    \"regras\": null,\n    \"regras_items\": null,\n    \"legenda_regras\": null,\n    \"o_que_levar\": null,\n    \"o_que_levar_items\": null,\n    \"inclusos\": null,\n    \"inclusos_items\": null,\n    \"nao_inclusos\": null,\n    \"nao_inclusos_items\": null,\n    \"videos\": null,\n    \"legenda_videos\": null,\n    \"links\": null,\n    \"titulo_galeria\": null,\n    \"legenda_galeria\": null,\n    \"ingressos_ids\": null,\n    \"legenda_ingressos\": null,\n    \"capa_url\": null,\n    \"banner_display_mode\": null,\n    \"meta_title\": null,\n    \"meta_description\": null,\n    \"meta_keywords\": null,\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/conteudo/publicar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/conteudo/publicar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "conteudo",
                                "publicar"
                            ],
                            "query": []
                        },
                        "description": "Marca o conteúdo como `publicado`. Necessário pra aparecer na vitrine pública."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/conteudo/despublicar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/conteudo/despublicar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "conteudo",
                                "despublicar"
                            ],
                            "query": []
                        },
                        "description": "Volta o status para `rascunho` — o conteúdo deixa de aparecer na vitrine pública (mas a excursão pode continuar publicada)."
                    }
                }
            ]
        },
        {
            "name": "Fotos & Capa (Excursão)",
            "description": "Galeria pública da excursão (até 10 fotos) + capa. Upload via multipart/form-data ou URL externa com validações de segurança (mime real via finfo, magic bytes, anti-SSRF, dimensões máx, sem SVG).",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/fotos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/fotos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "fotos"
                            ],
                            "query": []
                        },
                        "description": "Retorna as fotos da galeria ordenadas. Inclui URL pública, thumbnail, legenda e flag de destaque."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/fotos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/fotos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "fotos"
                            ],
                            "query": []
                        },
                        "description": "Aceita 2 caminhos: **(a)** multipart/form-data com campo `foto` (arquivo binário) **OU (b)** application/json com campo `url` (URL externa que será baixada e re-hospedada). Limite: 10 fotos por excursão. Validações de segurança: extensão whitelist (jpg/jpeg/png/webp/gif), MIME real via finfo, magic bytes via getimagesize, dimensões máx 8000x8000, anti-SSRF na URL externa (bloqueia IPs privados).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"foto\": null,\n    \"url\": null,\n    \"legenda\": null,\n    \"alt_text\": null,\n    \"destaque\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/fotos/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/fotos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "fotos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Edita legenda, alt_text, destaque ou ordem de uma foto existente.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"legenda\": null,\n    \"alt_text\": null,\n    \"destaque\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/fotos/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/fotos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "fotos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove a foto da galeria e apaga os arquivos do storage."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/fotos/reorder",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/fotos/reorder",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "fotos",
                                "reorder"
                            ],
                            "query": []
                        },
                        "description": "Atualiza a ordem de exibição das fotos. Envie o array `ordem` com os IDs na sequência desejada (índice 0 = primeira posição).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"ordem\": \"<array>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/capa",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/capa",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "capa"
                            ],
                            "query": []
                        },
                        "description": "Define a imagem de capa da excursão (renderizada como banner). Aceita multipart (`capa`) OU URL externa (`url`). A URL externa não é re-hospedada (fica como apontamento), mas passa por validação anti-SSRF e content-type. Para garantia de disponibilidade, prefira upload multipart.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"capa\": null,\n    \"url\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Categorias (Excursão)",
            "description": "Sub-recurso de excursão: categorias de passageiro (Adulto, Criança, etc)",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/categorias",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/categorias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "categorias"
                            ],
                            "query": []
                        },
                        "description": "Retorna as categorias cadastradas para a excursão."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/categorias/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/categorias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "categorias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna uma categoria específica."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/categorias",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/categorias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "categorias"
                            ],
                            "query": []
                        },
                        "description": "Cria uma nova categoria vinculada à excursão.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"idade_min\": null,\n    \"idade_max\": null,\n    \"ordem\": null,\n    \"vagas_max_categoria\": null,\n    \"qtd_passageiros\": null,\n    \"requer_documento\": null,\n    \"documento_tipo\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/categorias/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/categorias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "categorias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente uma categoria.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"descricao\": null,\n    \"idade_min\": null,\n    \"idade_max\": null,\n    \"ordem\": null,\n    \"vagas_max_categoria\": null,\n    \"qtd_passageiros\": null,\n    \"requer_documento\": null,\n    \"documento_tipo\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/categorias/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/categorias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "categorias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove uma categoria."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/categorias/reorder",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/categorias/reorder",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "categorias",
                                "reorder"
                            ],
                            "query": []
                        },
                        "description": "Reordena a exibição das categorias.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"ordem\": \"<array>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Embarques (Excursão)",
            "description": "Sub-recurso de excursão: pontos de embarque/retorno",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/embarques",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/embarques",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "embarques"
                            ],
                            "query": []
                        },
                        "description": "Retorna todos os pontos de embarque da excursão."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/embarques/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/embarques/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "embarques",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna um ponto de embarque."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/embarques",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/embarques",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "embarques"
                            ],
                            "query": []
                        },
                        "description": "Cadastra um novo ponto de embarque.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"endereco\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"cep\": null,\n    \"referencia\": null,\n    \"hora_embarque\": null,\n    \"hora_retorno\": null,\n    \"data_embarque\": null,\n    \"tolerancia_minutos\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"transporte_id\": null,\n    \"permite_reserva_online\": null,\n    \"vagas_max\": null,\n    \"ordem\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/embarques/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/embarques/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "embarques",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente um ponto de embarque.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"endereco\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"cep\": null,\n    \"referencia\": null,\n    \"hora_embarque\": null,\n    \"hora_retorno\": null,\n    \"data_embarque\": null,\n    \"tolerancia_minutos\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"transporte_id\": null,\n    \"permite_reserva_online\": null,\n    \"vagas_max\": null,\n    \"ordem\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/embarques/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/embarques/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "embarques",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove um ponto de embarque."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/embarques/reorder",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/embarques/reorder",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "embarques",
                                "reorder"
                            ],
                            "query": []
                        },
                        "description": "Reordena a exibição dos embarques.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"ordem\": \"<array>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Preços (Excursão)",
            "description": "Sub-recurso de excursão: valores por categoria × embarque",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/precos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/precos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "precos"
                            ],
                            "query": []
                        },
                        "description": "Retorna todos os preços (categoria × embarque) da excursão."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/precos/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/precos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "precos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna um preço específico."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/precos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/precos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "precos"
                            ],
                            "query": []
                        },
                        "description": "Cadastra um preço vinculado a uma categoria (e opcionalmente a um embarque).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"categoria_id\": \"<integer>\",\n    \"embarque_id\": null,\n    \"valor\": \"<number>\",\n    \"valor_ate\": null,\n    \"valor_aumenta_em\": null,\n    \"permite_reserva_online\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/precos/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/precos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "precos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente um preço.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"categoria_id\": null,\n    \"embarque_id\": null,\n    \"valor\": null,\n    \"valor_ate\": null,\n    \"valor_aumenta_em\": null,\n    \"permite_reserva_online\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/precos/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/precos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "precos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove um preço."
                    }
                },
                {
                    "name": "PATCH /excursoes/{excursaoId}/precos/bulk",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/precos/bulk",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "precos",
                                "bulk"
                            ],
                            "query": []
                        },
                        "description": "Atualiza múltiplos preços em uma única chamada. Útil para reajustes.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"precos\": \"<array>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Variações",
            "description": "Opções de preço de um pacote de viagem (Leito, Semi-leito, tipo de quarto). Cada item de \"precos\" da excursão traz excursao_variacao_id; é aqui que se descobre o nome por trás desse id. Só existem em excursões com tipo_excursao=pacote_viagem.",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/variacoes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/variacoes?ativas=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "variacoes"
                            ],
                            "query": [
                                {
                                    "key": "ativas",
                                    "value": "",
                                    "description": "Quando 1, retorna apenas as variações ativas",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Retorna as variações da excursão, na ordem definida no painel, com a faixa de preço e a ocupação de cada uma. Em excursão que não é pacote de viagem a lista volta vazia."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/variacoes/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/variacoes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "variacoes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna uma variação específica da excursão."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/variacoes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/variacoes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "variacoes"
                            ],
                            "query": []
                        },
                        "description": "Cria uma variação na excursão. Entra no fim da lista. Recusa com 422 quando a excursão não é pacote de viagem (TIPO_NAO_SUPORTA_VARIACAO) ou quando o código já existe na mesma excursão (DUPLICATE_CODE).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"tipo\": \"<string>\",\n    \"descricao\": null,\n    \"codigo\": null,\n    \"ativa\": null,\n    \"vagas_maximas\": null,\n    \"fornecedor_id\": null,\n    \"metadata\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/variacoes/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/variacoes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "variacoes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualização parcial: envie apenas os campos que quer mudar. Recusa com 422 ao reduzir vagas_maximas abaixo do que já foi vendido (LIMITE_ABAIXO_DO_VENDIDO). Para tirar da venda sem apagar histórico, envie ativa=false.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"tipo\": null,\n    \"descricao\": null,\n    \"codigo\": null,\n    \"ativa\": null,\n    \"vagas_maximas\": null,\n    \"fornecedor_id\": null,\n    \"metadata\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/variacoes/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/variacoes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "variacoes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove a variação e os preços ligados a ela. Bloqueado com 422 quando já há passageiros na variação (VARIACAO_COM_PASSAGEIROS); nesse caso use ativa=false."
                    }
                }
            ]
        },
        {
            "name": "Pacote de Viagem",
            "description": "Sub-recursos da aba \"Editar Viagem > Pacote\": dados gerais, roteiro dia-a-dia, componentes, voos, cruzeiro, allotment, cotações com opções e vouchers. Exige excursão com `tipo_excursao=pacote_viagem` (exceto cotações, que aceitam qualquer tipo). Para gestão de quartos/rooming, use o módulo de Hospedagem (addon).",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/dados",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/dados",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "dados"
                            ],
                            "query": []
                        },
                        "description": "Retorna dados gerais do pacote (país, cidade, hotel, regime, observações)."
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/dados",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/dados",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "dados"
                            ],
                            "query": []
                        },
                        "description": "`duracao_noites` é calculada automaticamente pelas datas da excursão.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"pais\": null,\n    \"estado\": null,\n    \"cidade\": null,\n    \"nome_hotel\": null,\n    \"categoria_hotel\": null,\n    \"regime_hospedagem\": null,\n    \"documentos_necessarios\": null,\n    \"observacoes_pacote\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/roteiro",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/roteiro",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "roteiro"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/roteiro",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/roteiro",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "roteiro"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"dia\": \"<integer>\",\n    \"titulo\": \"<string>\",\n    \"descricao\": null,\n    \"cidade\": null,\n    \"pernoite\": null,\n    \"regime\": null,\n    \"atividades\": null,\n    \"imagem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/roteiro/{itinerarioId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/roteiro/{itinerarioId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "roteiro",
                                "{itinerarioId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"dia\": \"<integer>\",\n    \"titulo\": \"<string>\",\n    \"descricao\": null,\n    \"imagem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/roteiro/{itinerarioId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/roteiro/{itinerarioId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "roteiro",
                                "{itinerarioId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/roteiro/reorder",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/roteiro/reorder",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "roteiro",
                                "reorder"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"items\": \"<array>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/roteiro/upload-imagem",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/roteiro/upload-imagem",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "roteiro",
                                "upload-imagem"
                            ],
                            "query": []
                        },
                        "description": "Faz upload de uma imagem para usar em um dia do roteiro. Retorna `path` que deve ser informado no campo `imagem` ao criar ou atualizar o dia.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"imagem\": \"<file>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/componentes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/componentes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "componentes"
                            ],
                            "query": []
                        },
                        "description": "Retorna lista de componentes + agregados (custo_total, preco_venda, margem, confirmados)."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/componentes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/componentes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "componentes"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"fornecedor_nome\": null,\n    \"fornecedor_email\": null,\n    \"fornecedor_telefone\": null,\n    \"confirmacao_status\": null,\n    \"confirmacao_codigo\": null,\n    \"custo_unitario\": null,\n    \"custo_fixo\": null,\n    \"tipo_custo\": null,\n    \"moeda_custo\": null,\n    \"taxa_cambio\": null,\n    \"taxa_cambio_data\": null,\n    \"incluso\": null,\n    \"obrigatorio\": null,\n    \"valor_adicional\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/componentes/{componenteId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/componentes/{componenteId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "componentes",
                                "{componenteId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"nome\": \"<string>\",\n    \"confirmacao_status\": null,\n    \"custo_unitario\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/componentes/{componenteId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/componentes/{componenteId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "componentes",
                                "{componenteId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/voos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/voos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "voos"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/voos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/voos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "voos"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"cia_aerea\": null,\n    \"numero_voo\": null,\n    \"aeroporto_origem\": null,\n    \"aeroporto_destino\": null,\n    \"data_voo\": null,\n    \"horario_partida\": null,\n    \"horario_chegada\": null,\n    \"classe\": null,\n    \"bagagem\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/voos/{vooId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/voos/{vooId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "voos",
                                "{vooId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"cia_aerea\": null,\n    \"numero_voo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/voos/{vooId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/voos/{vooId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "voos",
                                "{vooId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/cruzeiro",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cruzeiro",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cruzeiro"
                            ],
                            "query": []
                        },
                        "description": "1:1 com a excursão. Retorna null se não houver."
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/cruzeiro",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cruzeiro",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cruzeiro"
                            ],
                            "query": []
                        },
                        "description": "Cria ou atualiza (uma única operação).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"companhia\": null,\n    \"navio\": null,\n    \"porto_embarque\": null,\n    \"porto_retorno\": null,\n    \"partida\": null,\n    \"chegada\": null,\n    \"itinerario\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/cruzeiro",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cruzeiro",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cruzeiro"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/allotment",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/allotment",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "allotment"
                            ],
                            "query": []
                        },
                        "description": "Quartos pré-reservados com deadline de liberação."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/allotment",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/allotment",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "allotment"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"descricao\": \"<string>\",\n    \"quantidade_total\": \"<integer>\",\n    \"componente_id\": null,\n    \"deadline\": null,\n    \"custo_unitario\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/allotment/{allotmentId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/allotment/{allotmentId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "allotment",
                                "{allotmentId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"descricao\": \"<string>\",\n    \"quantidade_total\": \"<integer>\",\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/allotment/{allotmentId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/allotment/{allotmentId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "allotment",
                                "{allotmentId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/cotacoes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes"
                            ],
                            "query": []
                        },
                        "description": "Disponível para qualquer excursão (não exige tipo_excursao=pacote_viagem)."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/cotacoes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"cliente_id\": \"<integer>\",\n    \"mensagem_personalizada\": null,\n    \"validade\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes",
                                "{cotacaoId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"cliente_id\": \"<integer>\",\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes",
                                "{cotacaoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}/opcoes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}/opcoes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes",
                                "{cotacaoId}",
                                "opcoes"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"valor_total\": \"<number>\",\n    \"custo_total\": null,\n    \"componentes_inclusos\": null,\n    \"detalhes\": null,\n    \"destaque\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}/opcoes/{opcaoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}/opcoes/{opcaoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes",
                                "{cotacaoId}",
                                "opcoes",
                                "{opcaoId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"valor_total\": \"<number>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}/opcoes/{opcaoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/cotacoes/{cotacaoId}/opcoes/{opcaoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "cotacoes",
                                "{cotacaoId}",
                                "opcoes",
                                "{opcaoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/vouchers",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/vouchers",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "vouchers"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/pacote/vouchers",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/vouchers",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "vouchers"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"fornecedor_nome\": \"<string>\",\n    \"fornecedor_contato\": null,\n    \"componente_id\": null,\n    \"codigo_reserva\": null,\n    \"data_servico\": null,\n    \"horario\": null,\n    \"detalhes\": null,\n    \"observacoes_internas\": null,\n    \"passageiros\": null,\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/pacote/vouchers/{voucherId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/vouchers/{voucherId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "vouchers",
                                "{voucherId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo\": \"<string>\",\n    \"fornecedor_nome\": \"<string>\",\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/pacote/vouchers/{voucherId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/vouchers/{voucherId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "vouchers",
                                "{voucherId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/pacote/dashboard-custo",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/pacote/dashboard-custo",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "pacote",
                                "dashboard-custo"
                            ],
                            "query": []
                        },
                        "description": "Custo unitário total, custo fixo total, custo total por pessoa, preço de venda, margem, receita estimada, lucro estimado e quebra por tipo de componente."
                    }
                }
            ]
        },
        {
            "name": "Custeio da Viagem",
            "description": "Custos operacionais da excursão (ônibus, guia, hospedagem, pedágio, alimentação, ingressos), precificação com composição de valores (overhead, lucro, comissão, taxas), cenários por ocupação, ponto de equilíbrio e rentabilidade real. Espelha a aba **Custeio** da edição da viagem. Requer addon `gestao-financeira` (custos vivem em `fin_contas_pagar`).",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/custeio",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio"
                            ],
                            "query": []
                        },
                        "description": "Retorna TUDO em uma chamada: custos fixos e variáveis listados, totais agregados, custo por pax, capacidade, passageiros vendidos, receita real, configuração de precificação, cenários por ocupação, ponto de equilíbrio (break-even em pax), rentabilidade real e comissões por vendedor."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/custeio/custos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/custos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "custos"
                            ],
                            "query": []
                        },
                        "description": "Cria um custo da viagem (entra como `fin_conta_pagar` vinculada à excursão). `tipo_custo=fixo` é rateado entre todos os pax; `tipo_custo=variavel` é por pax (ou por variação se informar `excursao_variacao_id`).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"fornecedor\": null,\n    \"descricao\": null,\n    \"categoria_id\": null,\n    \"valor\": \"<number>\",\n    \"tipo_custo\": \"<string>\",\n    \"excursao_variacao_id\": null,\n    \"data_vencimento\": null,\n    \"forma_pagamento\": null,\n    \"observacao\": null,\n    \"desconto_crianca\": null,\n    \"desconto_idoso\": null,\n    \"desconto_bebe\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/custeio/custos/{custoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/custos/{custoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "custos",
                                "{custoId}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"valor\": \"<number>\",\n    \"tipo_custo\": \"<string>\",\n    \"fornecedor\": null,\n    \"descricao\": null,\n    \"categoria_id\": null,\n    \"data_vencimento\": null,\n    \"forma_pagamento\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/custeio/custos/{custoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/custos/{custoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "custos",
                                "{custoId}"
                            ],
                            "query": []
                        },
                        "description": "Soft delete. Custo deixa de impactar nos totais."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/custeio/custos/{custoId}/pagar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/custos/{custoId}/pagar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "custos",
                                "{custoId}",
                                "pagar"
                            ],
                            "query": []
                        },
                        "description": "Define `status=pago`, `valor_pago=valor`, `data_pagamento=now()`, `pago_por=usuário corrente`. Retorna 422 se já está pago."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/custeio/custos/{custoId}/nao-pago",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/custos/{custoId}/nao-pago",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "custos",
                                "{custoId}",
                                "nao-pago"
                            ],
                            "query": []
                        },
                        "description": "Volta para `pendente` (ou `vencido` se passou da data). Retorna 422 se não estava pago."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/custeio/precificacao",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/precificacao",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "precificacao"
                            ],
                            "query": []
                        },
                        "description": "Define a **composição de valores** que entra no cálculo do preço sugerido: overhead, lucro desejado, comissão de vendedor, taxas financeiras, ocupação estimada e mix de meios de pagamento. Persiste em `excursao_precificacao` (1:1 com excursão).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"overhead_percentual\": null,\n    \"lucro_desejado_percentual\": null,\n    \"comissao_vendedor_percentual\": null,\n    \"comissao_base\": null,\n    \"taxa_financeira_media\": null,\n    \"ocupacao_estimada\": null,\n    \"passageiros_estimados\": null,\n    \"mix_financeiro\": null,\n    \"taxas_financeiras\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/custeio/cenarios",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/custeio/cenarios",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "custeio",
                                "cenarios"
                            ],
                            "query": []
                        },
                        "description": "Calcula cenários (margem, lucro, break-even) para um `preco_venda` arbitrário SEM persistir. Se `preco_venda` for omitido, usa o `preco_sugerido` da precificação salva. Retorna 422 se nem o preço foi informado nem há precificação salva.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"preco_venda\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Passageiros",
            "description": "Gerenciamento de passageiros individuais das excursões",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/passageiros",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros?status=&search=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "pendente, confirmado, cancelado, embarcado",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por nome ou CPF",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens por página",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista passageiros de uma excursão específica."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/passageiros/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna passageiro com cliente, preço, embarque, transporte."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/passageiros",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros"
                            ],
                            "query": []
                        },
                        "description": "Adiciona um passageiro (cliente novo ou existente). Para múltiplos passageiros em uma order, prefira POST /reservas.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"cliente_id\": null,\n    \"cliente\": null,\n    \"preco_id\": \"<integer>\",\n    \"categoria_id\": null,\n    \"embarque_id\": null,\n    \"transporte_id\": null,\n    \"valor_cobrado\": null,\n    \"assento\": null,\n    \"observacao\": null,\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/passageiros/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza um passageiro (dados, embarque, assento, status).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"embarque_id\": null,\n    \"transporte_id\": null,\n    \"assento\": null,\n    \"valor_cobrado\": null,\n    \"status\": null,\n    \"observacao\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/passageiros/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Cancela (soft delete) o passageiro e libera a vaga."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/passageiros/{id}/checkin",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{id}/checkin",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{id}",
                                "checkin"
                            ],
                            "query": []
                        },
                        "description": "Marca passageiro como embarcado (checkin).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"latitude\": null,\n    \"longitude\": null,\n    \"observacao\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/passageiros/{id}/cartao-embarque",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{id}/cartao-embarque?format=&grupo=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{id}",
                                "cartao-embarque"
                            ],
                            "query": [
                                {
                                    "key": "format",
                                    "value": "",
                                    "description": "Formato de retorno: pdf | base64 | link (default: pdf)",
                                    "disabled": true
                                },
                                {
                                    "key": "grupo",
                                    "value": "",
                                    "description": "Se true, retorna o cartão de embarque do grupo todo (titular + dependentes). Default: auto — true quando o passageiro tem dependentes ativos, false para individual. Vale para todos os formatos (pdf/base64/link).",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Retorna o cartão de embarque do passageiro. O parâmetro `format` define o formato: `pdf` (default, stream binário application/pdf), `base64` (JSON com PDF em base64) ou `link` (JSON com URL pública assinada via token). O parâmetro `grupo` aplica-se a TODOS os formatos: quando true (ou auto-detectado), retorna o cartão consolidado de todo o grupo (titular + dependentes), uma página por passageiro no PDF."
                    }
                }
            ]
        },
        {
            "name": "Clientes",
            "description": "Cadastro de clientes, dependentes e histórico de reservas",
            "item": [
                {
                    "name": "GET /clientes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes?page=&per_page=&search=&email=&cpf=&celular=&whatsapp=&telefone=&ativo=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens (max 100)",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por nome, email, CPF, celular ou telefone. Termos com 5+ dígitos cruzam com CPF/celular/telefone normalizados.",
                                    "disabled": true
                                },
                                {
                                    "key": "email",
                                    "value": "",
                                    "description": "E-mail exato",
                                    "disabled": true
                                },
                                {
                                    "key": "cpf",
                                    "value": "",
                                    "description": "CPF (com ou sem formatação)",
                                    "disabled": true
                                },
                                {
                                    "key": "celular",
                                    "value": "",
                                    "description": "Celular/WhatsApp. Aceita com/sem DDI 55, com/sem 9, com/sem máscara. Compara últimos 10 dígitos.",
                                    "disabled": true
                                },
                                {
                                    "key": "whatsapp",
                                    "value": "",
                                    "description": "Alias de celular",
                                    "disabled": true
                                },
                                {
                                    "key": "telefone",
                                    "value": "",
                                    "description": "Filtra também pela coluna telefone (fixo). Mesma normalização.",
                                    "disabled": true
                                },
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "Filtrar por ativo/inativo",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada de clientes com filtros."
                    }
                },
                {
                    "name": "GET /clientes/cpf",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/cpf?cpf=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "cpf"
                            ],
                            "query": [
                                {
                                    "key": "cpf",
                                    "value": "",
                                    "description": "CPF (com ou sem formatação)",
                                    "disabled": false
                                }
                            ]
                        },
                        "description": "Busca exata por CPF (11 dígitos)."
                    }
                },
                {
                    "name": "GET /clientes/celular",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/celular?celular=&whatsapp=&telefone=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "celular"
                            ],
                            "query": [
                                {
                                    "key": "celular",
                                    "value": "",
                                    "description": "Aceita whatsapp= ou telefone= como alias. Ex: \"85999281920\", \"(85) 99928-1920\", \"+5585999281920\"",
                                    "disabled": true
                                },
                                {
                                    "key": "whatsapp",
                                    "value": "",
                                    "description": "Alias de celular",
                                    "disabled": true
                                },
                                {
                                    "key": "telefone",
                                    "value": "",
                                    "description": "Alias de celular",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Busca cliente pelo telefone com normalização tolerante a formato (DDI 55, 9 mobile, máscara). Útil para chatbots identificarem cliente recorrente a partir do número do WhatsApp."
                    }
                },
                {
                    "name": "GET /clientes/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}?include_dependentes=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}"
                            ],
                            "query": [
                                {
                                    "key": "include_dependentes",
                                    "value": "",
                                    "description": "Se true, inclui array dependentes na resposta",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Retorna o cliente. Use include_dependentes=true para trazer os dependentes."
                    }
                },
                {
                    "name": "GET /clientes/{id}/reservas",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/reservas?status=&excursao_id=&updated_since=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "reservas"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "Filtro CSV (ex: \"pendente,confirmado\")",
                                    "disabled": true
                                },
                                {
                                    "key": "excursao_id",
                                    "value": "",
                                    "description": "Pedidos contendo passageiros desta excursão",
                                    "disabled": true
                                },
                                {
                                    "key": "updated_since",
                                    "value": "",
                                    "description": "Modificados a partir de (ISO 8601). Sync incremental.",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens (max 100)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada dos pedidos (Orders) onde o cliente é comprador. Retorna o pedido completo com codigo, valor_total, status e passageiros aninhados (incluindo vagas pendentes com cadastrado_via=convite_pendente)."
                    }
                },
                {
                    "name": "POST /clientes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes"
                            ],
                            "query": []
                        },
                        "description": "Cria um cliente. origem_cadastro é gravado automaticamente como \"api\". Valida unicidade de CPF e email (retorna 409 em duplicata). A resposta inclui um auto_login_url (magic link de 30 min, one-time use) pronto para redirecionar o cliente já logado no portal.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"email\": null,\n    \"cpf\": null,\n    \"rg\": null,\n    \"passaporte\": null,\n    \"nacionalidade\": null,\n    \"documento_estrangeiro\": null,\n    \"documento_estrangeiro_tipo\": null,\n    \"documento_estrangeiro_emissor\": null,\n    \"documento_estrangeiro_emissao\": null,\n    \"data_nascimento\": null,\n    \"telefone\": null,\n    \"celular\": null,\n    \"instagram\": null,\n    \"cep\": null,\n    \"endereco\": null,\n    \"numero\": null,\n    \"complemento\": null,\n    \"bairro\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"contato_emergencia_nome\": null,\n    \"contato_emergencia_parentesco\": null,\n    \"contato_emergencia_telefone\": null,\n    \"avatar_url\": null,\n    \"ativo\": null,\n    \"observacoes\": null,\n    \"campos_personalizados\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /clientes/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente um cliente. Todos os campos são opcionais.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"email\": null,\n    \"cpf\": null,\n    \"rg\": null,\n    \"passaporte\": null,\n    \"nacionalidade\": null,\n    \"documento_estrangeiro\": null,\n    \"documento_estrangeiro_tipo\": null,\n    \"documento_estrangeiro_emissor\": null,\n    \"documento_estrangeiro_emissao\": null,\n    \"data_nascimento\": null,\n    \"telefone\": null,\n    \"celular\": null,\n    \"instagram\": null,\n    \"cep\": null,\n    \"endereco\": null,\n    \"numero\": null,\n    \"complemento\": null,\n    \"bairro\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"contato_emergencia_nome\": null,\n    \"contato_emergencia_parentesco\": null,\n    \"contato_emergencia_telefone\": null,\n    \"avatar_url\": null,\n    \"ativo\": null,\n    \"observacoes\": null,\n    \"campos_personalizados\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /clientes/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove o cliente (soft delete)."
                    }
                },
                {
                    "name": "POST /clientes/{id}/auto-login",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/auto-login",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "auto-login"
                            ],
                            "query": []
                        },
                        "description": "Gera um novo token de auto-login para um cliente existente. O token é válido por 30 minutos, one-time use (invalida após primeiro clique) e invalida qualquer token anterior. Use para SSO: parceiro envia o URL por WhatsApp/email e o cliente cai já logado em /minha-conta."
                    }
                },
                {
                    "name": "DELETE /clientes/{id}/auto-login",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/auto-login",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "auto-login"
                            ],
                            "query": []
                        },
                        "description": "Invalida o token atual do cliente (equivalente a \"logout forçado\" dos links pendentes). Use em caso de token comprometido."
                    }
                },
                {
                    "name": "GET /clientes/{id}/dependentes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/dependentes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "dependentes"
                            ],
                            "query": []
                        },
                        "description": "Lista os dependentes (filhos, cônjuges, etc) do cliente."
                    }
                },
                {
                    "name": "POST /clientes/{id}/dependentes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/dependentes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "dependentes"
                            ],
                            "query": []
                        },
                        "description": "Cria um dependente vinculado ao cliente.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"cpf\": null,\n    \"rg\": null,\n    \"passaporte\": null,\n    \"nacionalidade\": null,\n    \"documento_estrangeiro\": null,\n    \"documento_estrangeiro_tipo\": null,\n    \"documento_estrangeiro_emissor\": null,\n    \"documento_estrangeiro_emissao\": null,\n    \"data_nascimento\": null,\n    \"parentesco\": null,\n    \"telefone\": null,\n    \"email\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /clientes/{id}/dependentes/{dependenteId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/dependentes/{dependenteId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "dependentes",
                                "{dependenteId}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza um dependente. Todos os campos são opcionais.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"cpf\": null,\n    \"rg\": null,\n    \"passaporte\": null,\n    \"nacionalidade\": null,\n    \"documento_estrangeiro\": null,\n    \"documento_estrangeiro_tipo\": null,\n    \"documento_estrangeiro_emissor\": null,\n    \"documento_estrangeiro_emissao\": null,\n    \"data_nascimento\": null,\n    \"parentesco\": null,\n    \"telefone\": null,\n    \"email\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /clientes/{id}/dependentes/{dependenteId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/clientes/{id}/dependentes/{dependenteId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "clientes",
                                "{id}",
                                "dependentes",
                                "{dependenteId}"
                            ],
                            "query": []
                        },
                        "description": "Remove o dependente."
                    }
                }
            ]
        },
        {
            "name": "Reservas",
            "description": "Orders de reservas com geração de link de pagamento",
            "item": [
                {
                    "name": "GET /reservas",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas?page=&per_page=&status=&cliente_id=&excursao_id=&data_de=&data_ate=&updated_since=&search=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens (max 100)",
                                    "disabled": true
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "pendente, parcial, pago, cancelado, reembolsado",
                                    "disabled": true
                                },
                                {
                                    "key": "cliente_id",
                                    "value": "",
                                    "description": "Filtrar por comprador",
                                    "disabled": true
                                },
                                {
                                    "key": "excursao_id",
                                    "value": "",
                                    "description": "Filtrar por excursão",
                                    "disabled": true
                                },
                                {
                                    "key": "data_de",
                                    "value": "",
                                    "description": "Criadas a partir de (Y-m-d)",
                                    "disabled": true
                                },
                                {
                                    "key": "data_ate",
                                    "value": "",
                                    "description": "Criadas até (Y-m-d)",
                                    "disabled": true
                                },
                                {
                                    "key": "updated_since",
                                    "value": "",
                                    "description": "Modificadas a partir de (ISO 8601). Útil para sync incremental.",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por código da order, nome ou email do comprador",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada de orders/reservas com filtros."
                    }
                },
                {
                    "name": "GET /reservas/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Reserva completa com passageiros, preços, embarques, transportes, pagamentos e financeiro. Inclui também `total_pendentes` (vagas aguardando preenchimento), `passageiros_completos` e `passageiros_total` — use pra decidir liberação de cartão de embarque sem precisar chamar /passageiros-pendentes."
                    }
                },
                {
                    "name": "POST /reservas",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas"
                            ],
                            "query": []
                        },
                        "description": "Cria uma order com um ou mais passageiros em transação. Aceita cliente_id existente ou objeto cliente inline (auto-cria por CPF/email). Se gerar_link_pagamento=true, retorna também `payment_url` do gateway ativo. Se a geração falhar (sem gateway, excursão sem preço, etc), a reserva ainda é criada e a resposta inclui `payment_link_error: { code, message }` em vez de `payment_url`.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"excursao_id\": \"<integer>\",\n    \"cliente_id\": null,\n    \"cliente\": null,\n    \"passageiros\": \"<array>\",\n    \"forma_pagamento\": null,\n    \"parcelas\": null,\n    \"observacoes\": null,\n    \"gerar_link_pagamento\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /reservas/{id}/payment-link",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/payment-link",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "payment-link"
                            ],
                            "query": []
                        },
                        "description": "Gera uma URL de pagamento no gateway ativo do tenant (Mercado Pago, Asaas, Pagar.me, Infinite Pay, PagSeguro, ValePay). Requer que o tenant tenha ao menos um gateway configurado e habilitado.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"valor\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /reservas/{id}/payments",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/payments",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "payments"
                            ],
                            "query": []
                        },
                        "description": "Registra um pagamento manual (dinheiro, transferência, PIX confirmado fora do gateway, etc). Cria OrderPayment, propaga para o financeiro de cada passageiro proporcionalmente ao valor cobrado, confirma passageiros automaticamente se o valor total for atingido e envia e-mail de confirmação.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"valor\": \"<number>\",\n    \"forma_pagamento\": \"<string>\",\n    \"gateway\": null,\n    \"gateway_payment_id\": null,\n    \"observacao\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /reservas/{id}/cancel",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/cancel",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "cancel"
                            ],
                            "query": []
                        },
                        "description": "Cancela a reserva e todos os passageiros associados. Dispara webhook reserva.cancelada."
                    }
                },
                {
                    "name": "POST /reservas/{id}/magic-link",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/magic-link",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "magic-link"
                            ],
                            "query": []
                        },
                        "description": "Gera URL única (válida 30 minutos, single-use) que loga o comprador e redireciona para a página da reserva no portal cliente. Útil para enviar via WhatsApp/email pós-pagamento e pedir que o cliente complete documentos/contrato."
                    }
                },
                {
                    "name": "GET /reservas/{id}/contrato-status",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/contrato-status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "contrato-status"
                            ],
                            "query": []
                        },
                        "description": "Retorna o status do aceite eletrônico do contrato por passageiro da reserva. Inclui referência ao SignatureAgreement ativo (se houver). O fluxo recomendado é: pagar primeiro (via payment-link) → gerar magic-link → cliente assina pelo portal."
                    }
                },
                {
                    "name": "GET /reservas/{id}/passageiros-pendentes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/passageiros-pendentes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "passageiros-pendentes"
                            ],
                            "query": []
                        },
                        "description": "Lista as vagas pendentes (passageiros placeholder aguardando preenchimento). Cada vaga retorna o link_convite — URL pública do formulário que pode ser copiada e enviada via WhatsApp/email para o convidado preencher, ou usada pelo comprador no portal. **Auto-renovação:** se o token de uma vaga ainda pendente estiver expirado/usado, este endpoint regenera automaticamente um token novo (24h de validade) antes de retornar. Não é necessário chamar o endpoint dedicado de reenviar-convite — basta consultar este GET periodicamente."
                    }
                },
                {
                    "name": "POST /reservas/{id}/passageiros-pendentes/{pendenteId}/preencher",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/passageiros-pendentes/{pendenteId}/preencher",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "passageiros-pendentes",
                                "{pendenteId}",
                                "preencher"
                            ],
                            "query": []
                        },
                        "description": "Preenche os dados de uma vaga pendente em nome do comprador. Atualiza o ExcursaoPassageiro placeholder com os dados reais. Aceita 1 de 3 formas: (a) cliente_id de cliente existente, (b) dependente_id do comprador, ou (c) dados crus (nome+cpf+...) que cria/reusa cliente por CPF (LGPD).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"cliente_id\": null,\n    \"dependente_id\": null,\n    \"nome\": null,\n    \"cpf\": null,\n    \"rg\": null,\n    \"telefone\": null,\n    \"email\": null,\n    \"data_nascimento\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /reservas/{id}/passageiros-pendentes/{pendenteId}/reenviar-convite",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/passageiros-pendentes/{pendenteId}/reenviar-convite",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "passageiros-pendentes",
                                "{pendenteId}",
                                "reenviar-convite"
                            ],
                            "query": []
                        },
                        "description": "Invalida o token atual e gera um novo (validade padrão 24h). Use para recuperar vaga com link_convite expirado. Não dispara envio por canal — quem decide se reencaminha por WhatsApp/email é o integrador."
                    }
                },
                {
                    "name": "DELETE /reservas/{id}/passageiros-pendentes/{pendenteId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}/passageiros-pendentes/{pendenteId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}",
                                "passageiros-pendentes",
                                "{pendenteId}"
                            ],
                            "query": []
                        },
                        "description": "Cancela uma vaga pendente não preenchida. O valor da vaga é subtraído de valor_total/valor_pendente do pedido. Token de convite associado é invalidado."
                    }
                },
                {
                    "name": "DELETE /reservas/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/reservas/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "reservas",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove permanentemente uma reserva e todos os passageiros, financeiros, pagamentos e vagas pendentes vinculados. Só funciona com status=cancelado — use POST /reservas/{id}/cancel primeiro para reservas ativas."
                    }
                }
            ]
        },
        {
            "name": "Lista de Espera",
            "description": "Fila de espera por excursão. Quando uma vaga abre, o sistema notifica o primeiro da fila com janela de oferta limitada.",
            "item": [
                {
                    "name": "GET /lista-espera",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lista-espera?page=&per_page=&excursao_id=&status=&cliente_id=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lista-espera"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens (max 100)",
                                    "disabled": true
                                },
                                {
                                    "key": "excursao_id",
                                    "value": "",
                                    "description": "Filtrar por excursão",
                                    "disabled": true
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "aguardando, notificado, expirado, cancelado, convertido",
                                    "disabled": true
                                },
                                {
                                    "key": "cliente_id",
                                    "value": "",
                                    "description": "Filtrar por cliente",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada das entradas em lista de espera, com filtros."
                    }
                },
                {
                    "name": "GET /lista-espera/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lista-espera/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lista-espera",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna a entrada com cliente e excursão carregados."
                    }
                },
                {
                    "name": "POST /lista-espera",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lista-espera",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lista-espera"
                            ],
                            "query": []
                        },
                        "description": "Adiciona uma pessoa na fila. Posição é calculada automaticamente (ultima da fila para essa excursão).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"excursao_id\": \"<integer>\",\n    \"cliente_id\": null,\n    \"nome\": null,\n    \"email\": null,\n    \"celular\": null,\n    \"cpf\": null,\n    \"quantidade\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /lista-espera/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lista-espera/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lista-espera",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Marca a entrada como cancelada. Posicoes seguintes nao sao reordenadas automaticamente."
                    }
                }
            ]
        },
        {
            "name": "Financeiro",
            "description": "Pagamentos e dados financeiros dos passageiros",
            "item": [
                {
                    "name": "GET /excursoes/{excursaoId}/passageiros/{passageiroId}/financeiro",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{passageiroId}/financeiro",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{passageiroId}",
                                "financeiro"
                            ],
                            "query": []
                        },
                        "description": "Resumo financeiro: valor total, pago, pendente, status."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/passageiros/{passageiroId}/pagamentos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{passageiroId}/pagamentos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{passageiroId}",
                                "pagamentos"
                            ],
                            "query": []
                        },
                        "description": "Lista todos os pagamentos registrados para um passageiro."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/passageiros/{passageiroId}/pagamentos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/passageiros/{passageiroId}/pagamentos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "passageiros",
                                "{passageiroId}",
                                "pagamentos"
                            ],
                            "query": []
                        },
                        "description": "Registra um pagamento manual (ex: recebido em dinheiro, transferência). Atualiza valor_pago do passageiro/order.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"valor\": \"<number>\",\n    \"forma\": \"<string>\",\n    \"data_pagamento\": null,\n    \"observacao\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/financeiro/resumo",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/financeiro/resumo",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "financeiro",
                                "resumo"
                            ],
                            "query": []
                        },
                        "description": "Agrega valores de todos os passageiros da excursão."
                    }
                }
            ]
        },
        {
            "name": "Cupons",
            "description": "Cupons de desconto: CRUD, validação e aplicação em reservas.",
            "item": [
                {
                    "name": "GET /cupons",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons?search=&ativo=&tipo=&apenas_principais=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons"
                            ],
                            "query": [
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por código ou nome",
                                    "disabled": true
                                },
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "Filtra por status ativo",
                                    "disabled": true
                                },
                                {
                                    "key": "tipo",
                                    "value": "",
                                    "description": "publico | unico | cliente | primeira_compra | indicacao",
                                    "disabled": true
                                },
                                {
                                    "key": "apenas_principais",
                                    "value": "",
                                    "description": "Se true, omite cupons filhos de lotes",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens por página (default 50, máx 100)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada de cupons com filtros opcionais."
                    }
                },
                {
                    "name": "GET /cupons/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna todos os campos do cupom + contagem de usos e status calculado."
                    }
                },
                {
                    "name": "POST /cupons",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons"
                            ],
                            "query": []
                        },
                        "description": "Cria um novo cupom de desconto. O código é normalizado para uppercase. Retorna 409 se já existir.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"codigo\": \"<string>\",\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"tipo\": \"<string>\",\n    \"tipo_desconto\": \"<string>\",\n    \"valor_desconto\": null,\n    \"valor_maximo_desconto\": null,\n    \"limite_uso_total\": null,\n    \"limite_uso_por_cliente\": null,\n    \"valor_minimo_pedido\": null,\n    \"data_inicio\": null,\n    \"data_expiracao\": null,\n    \"excursoes_permitidas\": null,\n    \"excursoes_excluidas\": null,\n    \"categorias_permitidas\": null,\n    \"apenas_primeira_compra\": null,\n    \"clientes_permitidos\": null,\n    \"clientes_bloqueados\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /cupons/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza os campos do cupom. Todos os campos são opcionais (envie apenas os que mudaram).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"codigo\": null,\n    \"nome\": null,\n    \"descricao\": null,\n    \"tipo\": null,\n    \"tipo_desconto\": null,\n    \"valor_desconto\": null,\n    \"valor_maximo_desconto\": null,\n    \"limite_uso_total\": null,\n    \"limite_uso_por_cliente\": null,\n    \"valor_minimo_pedido\": null,\n    \"data_inicio\": null,\n    \"data_expiracao\": null,\n    \"excursoes_permitidas\": null,\n    \"excursoes_excluidas\": null,\n    \"categorias_permitidas\": null,\n    \"apenas_primeira_compra\": null,\n    \"clientes_permitidos\": null,\n    \"clientes_bloqueados\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PATCH /cupons/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "Inverte o status ativo do cupom (toggle). Útil para pausar/retomar um cupom sem excluí-lo."
                    }
                },
                {
                    "name": "DELETE /cupons/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove permanentemente o cupom. Retorna 400 se já foi utilizado em alguma reserva (desative-o em vez de excluir)."
                    }
                },
                {
                    "name": "POST /cupons/validar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/validar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "validar"
                            ],
                            "query": []
                        },
                        "description": "Verifica se o código é válido e calcula o desconto. Útil para mostrar o desconto no checkout antes de confirmar. Não consome o cupom.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"codigo\": \"<string>\",\n    \"cliente_id\": null,\n    \"valor_total\": null,\n    \"excursao_id\": null,\n    \"quantidade_passageiros\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /cupons/aplicar/{orderId}",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/aplicar/{orderId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "aplicar",
                                "{orderId}"
                            ],
                            "query": []
                        },
                        "description": "Aplica o cupom em uma reserva existente. Operação atômica com lock no cupom (evita race condition em limite_uso_total). Atualiza valor_total da order, registra CupomUso e incrementa o contador de usos.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"codigo\": \"<string>\",\n    \"cliente_id\": \"<integer>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /cupons/aplicar/{orderId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/cupons/aplicar/{orderId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "cupons",
                                "aplicar",
                                "{orderId}"
                            ],
                            "query": []
                        },
                        "description": "Remove o cupom aplicado em uma reserva, restaurando o valor_total original. Decrementa o contador de usos."
                    }
                }
            ]
        },
        {
            "name": "Guias",
            "description": "Cadastro de guias e designação em excursões",
            "item": [
                {
                    "name": "GET /guias",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/guias?search=&ativo=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "guias"
                            ],
                            "query": [
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Buscar por nome",
                                    "disabled": true
                                },
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "Filtrar por ativo",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens por página",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada de guias com filtros."
                    }
                },
                {
                    "name": "GET /guias/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/guias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "guias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna todos os dados do guia."
                    }
                },
                {
                    "name": "POST /guias",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/guias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "guias"
                            ],
                            "query": []
                        },
                        "description": "Cadastra um novo guia.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"email\": null,\n    \"telefone\": null,\n    \"celular\": null,\n    \"cpf\": null,\n    \"rg\": null,\n    \"data_nascimento\": null,\n    \"cep\": null,\n    \"endereco\": null,\n    \"numero\": null,\n    \"complemento\": null,\n    \"bairro\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"banco\": null,\n    \"agencia\": null,\n    \"conta\": null,\n    \"tipo_conta\": null,\n    \"pix\": null,\n    \"observacoes\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /guias/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/guias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "guias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza os dados do guia.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"email\": null,\n    \"telefone\": null,\n    \"celular\": null,\n    \"cpf\": null,\n    \"rg\": null,\n    \"data_nascimento\": null,\n    \"cep\": null,\n    \"endereco\": null,\n    \"numero\": null,\n    \"complemento\": null,\n    \"bairro\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"banco\": null,\n    \"agencia\": null,\n    \"conta\": null,\n    \"tipo_conta\": null,\n    \"pix\": null,\n    \"observacoes\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PATCH /guias/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/guias/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "guias",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "Ativa ou desativa o guia."
                    }
                },
                {
                    "name": "DELETE /guias/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/guias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "guias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove o guia."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/guias",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/guias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "guias"
                            ],
                            "query": []
                        },
                        "description": "Lista os guias designados para uma excursão."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/guias",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/guias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "guias"
                            ],
                            "query": []
                        },
                        "description": "Designa um guia para a excursão.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"guia_id\": \"<integer>\",\n    \"transporte_id\": null,\n    \"embarque_id\": null,\n    \"funcao\": \"<string>\",\n    \"valor_pagamento\": null,\n    \"observacao\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Veículos",
            "description": "Cadastro de veículos (ônibus, vans, carros)",
            "item": [
                {
                    "name": "GET /veiculos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos?tipo=&transporte_id=&ativo=&search=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos"
                            ],
                            "query": [
                                {
                                    "key": "tipo",
                                    "value": "",
                                    "description": "Tipo do veículo",
                                    "disabled": true
                                },
                                {
                                    "key": "transporte_id",
                                    "value": "",
                                    "description": "Filtrar pela empresa dona",
                                    "disabled": true
                                },
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "Filtrar por ativo",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por modelo, placa",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista veículos com filtros."
                    }
                },
                {
                    "name": "GET /veiculos/tipos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos/tipos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos",
                                "tipos"
                            ],
                            "query": []
                        },
                        "description": "Lista os tipos aceitos pelo campo tipo."
                    }
                },
                {
                    "name": "GET /veiculos/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna o veículo com a empresa de transporte."
                    }
                },
                {
                    "name": "POST /veiculos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos"
                            ],
                            "query": []
                        },
                        "description": "Cadastra um veículo vinculado a uma empresa de transporte.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"transporte_id\": \"<integer>\",\n    \"tipo\": \"<string>\",\n    \"modelo\": \"<string>\",\n    \"placa\": null,\n    \"renavam\": null,\n    \"ano_fabricacao\": null,\n    \"capacidade_total\": \"<integer>\",\n    \"ar_condicionado\": null,\n    \"wifi\": null,\n    \"banheiro\": null,\n    \"tv\": null,\n    \"tomadas\": null,\n    \"reclinavel\": null,\n    \"observacoes\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /veiculos/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente o veículo.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"transporte_id\": null,\n    \"tipo\": null,\n    \"modelo\": null,\n    \"placa\": null,\n    \"renavam\": null,\n    \"ano_fabricacao\": null,\n    \"capacidade_total\": null,\n    \"ar_condicionado\": null,\n    \"wifi\": null,\n    \"banheiro\": null,\n    \"tv\": null,\n    \"tomadas\": null,\n    \"reclinavel\": null,\n    \"observacoes\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PATCH /veiculos/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "Alterna entre ativo e inativo."
                    }
                },
                {
                    "name": "DELETE /veiculos/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/veiculos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "veiculos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove o veículo."
                    }
                }
            ]
        },
        {
            "name": "Transportes",
            "description": "Cadastro de empresas de transporte e atribuição em excursões",
            "item": [
                {
                    "name": "GET /transportes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/transportes?search=&ativo=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "transportes"
                            ],
                            "query": [
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Buscar por nome",
                                    "disabled": true
                                },
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "Filtrar por ativo",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada com filtros."
                    }
                },
                {
                    "name": "GET /transportes/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/transportes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "transportes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna a empresa com dados completos."
                    }
                },
                {
                    "name": "POST /transportes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/transportes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "transportes"
                            ],
                            "query": []
                        },
                        "description": "Cadastra uma nova empresa de transporte.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome_fantasia\": \"<string>\",\n    \"razao_social\": null,\n    \"cnpj\": null,\n    \"email\": null,\n    \"telefone\": null,\n    \"telefone_secundario\": null,\n    \"whatsapp\": null,\n    \"site\": null,\n    \"cep\": null,\n    \"endereco\": null,\n    \"numero\": null,\n    \"complemento\": null,\n    \"bairro\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"contato_nome\": null,\n    \"contato_telefone\": null,\n    \"contato_email\": null,\n    \"observacoes\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /transportes/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/transportes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "transportes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza parcialmente os dados.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome_fantasia\": null,\n    \"razao_social\": null,\n    \"cnpj\": null,\n    \"email\": null,\n    \"telefone\": null,\n    \"telefone_secundario\": null,\n    \"whatsapp\": null,\n    \"site\": null,\n    \"cep\": null,\n    \"endereco\": null,\n    \"numero\": null,\n    \"complemento\": null,\n    \"bairro\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"contato_nome\": null,\n    \"contato_telefone\": null,\n    \"contato_email\": null,\n    \"observacoes\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PATCH /transportes/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/transportes/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "transportes",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "Ativa ou desativa a empresa."
                    }
                },
                {
                    "name": "DELETE /transportes/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/transportes/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "transportes",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove a empresa."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/transportes",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/transportes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "transportes"
                            ],
                            "query": []
                        },
                        "description": "Lista os transportes (veículos + vagas) configurados na excursão."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/transportes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/transportes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "transportes"
                            ],
                            "query": []
                        },
                        "description": "Configura um veículo para a excursão com vagas.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"veiculo_id\": \"<integer>\",\n    \"empresa_transporte_id\": null,\n    \"nome\": null,\n    \"numero\": null,\n    \"tipo\": null,\n    \"vagas_total\": \"<integer>\",\n    \"vagas_reserva_admin\": null,\n    \"ordem\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Hospedagem",
            "description": "Addon Hospedagem — cadastro de hotéis/pousadas, tipos de quarto, suplementos, vínculo com excursões (allotment + valores) e alocação real de quartos para passageiros e guias. Requer addon `hospedagem` ativo no tenant (403 caso contrário).",
            "item": [
                {
                    "name": "GET /hospedarias",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias?ativo=&tipo=&cidade=&search=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias"
                            ],
                            "query": [
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "true|false",
                                    "disabled": true
                                },
                                {
                                    "key": "tipo",
                                    "value": "",
                                    "description": "hotel|pousada|resort|hostel|chacara|camping|outro",
                                    "disabled": true
                                },
                                {
                                    "key": "cidade",
                                    "value": "",
                                    "description": "",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por nome",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Max 100 (default 20)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Paginada. Filtros opcionais: ativo, tipo, cidade, search."
                    }
                },
                {
                    "name": "POST /hospedarias",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias"
                            ],
                            "query": []
                        },
                        "description": "Aceita criação aninhada de `tipos_quarto[]` e `suplementos[]` no mesmo payload.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"tipo\": \"<string>\",\n    \"endereco\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"cep\": null,\n    \"telefone\": null,\n    \"email\": null,\n    \"website\": null,\n    \"descricao\": null,\n    \"amenidades\": null,\n    \"politica_checkin\": null,\n    \"politica_checkout\": null,\n    \"politica_cancelamento\": null,\n    \"ativo\": null,\n    \"tipos_quarto\": null,\n    \"suplementos\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /hospedarias/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "PUT /hospedarias/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"tipo\": null,\n    \"cidade\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /hospedarias/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Falha com 422 se houver excursões vinculadas."
                    }
                },
                {
                    "name": "PATCH /hospedarias/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /hospedarias/{id}/tipos-quarto",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/tipos-quarto",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "tipos-quarto"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /hospedarias/{id}/tipos-quarto",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/tipos-quarto",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "tipos-quarto"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"capacidade_min\": \"<integer>\",\n    \"capacidade_max\": \"<integer>\",\n    \"descricao\": null,\n    \"amenidades\": null,\n    \"foto_url\": null,\n    \"ordem\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /hospedarias/{id}/tipos-quarto/{tipoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/tipos-quarto/{tipoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "tipos-quarto",
                                "{tipoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "DELETE /hospedarias/{id}/tipos-quarto/{tipoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/tipos-quarto/{tipoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "tipos-quarto",
                                "{tipoId}"
                            ],
                            "query": []
                        },
                        "description": "Falha com 422 se houver allotment usando este tipo."
                    }
                },
                {
                    "name": "GET /hospedarias/{id}/suplementos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/suplementos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "suplementos"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /hospedarias/{id}/suplementos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/suplementos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "suplementos"
                            ],
                            "query": []
                        },
                        "description": "Suplementos são extras (café reforçado, upgrade vista mar, etc) com preço padrão da hospedaria.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"tipo\": \"<string>\",\n    \"preco_padrao\": \"<number>\",\n    \"cobranca\": \"<string>\",\n    \"descricao\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /hospedarias/{id}/suplementos/{suplementoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/suplementos/{suplementoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "suplementos",
                                "{suplementoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "DELETE /hospedarias/{id}/suplementos/{suplementoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/hospedarias/{id}/suplementos/{suplementoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "hospedarias",
                                "{id}",
                                "suplementos",
                                "{suplementoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/hospedagens",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/hospedagens/disponiveis",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/disponiveis",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "disponiveis"
                            ],
                            "query": []
                        },
                        "description": "Lista hospedarias do tenant que ainda não estão vinculadas à excursão."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens"
                            ],
                            "query": []
                        },
                        "description": "Cria o vínculo, opcionalmente com `quartos_disponiveis[]` (allotment) e `suplementos[]` configurados pra essa excursão. Sincroniza custo com módulo financeiro.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"hospedaria_id\": \"<integer>\",\n    \"checkin_data\": \"<string>\",\n    \"checkout_data\": \"<string>\",\n    \"checkin_hora\": null,\n    \"checkout_hora\": null,\n    \"custo_total\": null,\n    \"observacoes\": null,\n    \"rooming_list_prazo\": null,\n    \"status\": null,\n    \"quartos_disponiveis\": null,\n    \"suplementos\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/hospedagens/{vinculoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/hospedagens/{vinculoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "quartos"
                            ],
                            "query": []
                        },
                        "description": "Retorna os quartos criados (gerados a partir do allotment ou adicionados manualmente) com os hóspedes alocados em cada um."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "quartos"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo_quarto_id\": \"<integer>\",\n    \"numero\": null,\n    \"observacoes\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos/{quartoId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos/{quartoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "quartos",
                                "{quartoId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "DELETE /excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos/{quartoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos/{quartoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "quartos",
                                "{quartoId}"
                            ],
                            "query": []
                        },
                        "description": "Falha com 422 se houver hóspedes alocados (desalocar antes)."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos/gerar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/quartos/gerar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "quartos",
                                "gerar"
                            ],
                            "query": []
                        },
                        "description": "Cria quartos vazios automaticamente baseado nos `quartos_disponiveis` do vínculo."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/alocar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/alocar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "alocar"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"passageiro_id\": \"<integer>\",\n    \"quarto_id\": \"<integer>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/desalocar",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/desalocar",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "desalocar"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"passageiro_id\": \"<integer>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/alocar-guia",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/alocar-guia",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "alocar-guia"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"guia_id\": \"<integer>\",\n    \"quarto_id\": \"<integer>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/desalocar-guia",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/desalocar-guia",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "desalocar-guia"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"guia_id\": \"<integer>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/alocar-automaticamente",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/alocar-automaticamente",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "alocar-automaticamente"
                            ],
                            "query": []
                        },
                        "description": "Distribui passageiros nos quartos automaticamente, respeitando capacidade e separação por gênero/grupo familiar quando aplicável."
                    }
                },
                {
                    "name": "POST /excursoes/{excursaoId}/hospedagens/{vinculoId}/limpar-alocacoes",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/limpar-alocacoes",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "limpar-alocacoes"
                            ],
                            "query": []
                        },
                        "description": "Remove todos os passageiros e guias dos quartos. Mantém os quartos criados."
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/hospedagens/{vinculoId}/passageiros-sem-quarto",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/passageiros-sem-quarto",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "passageiros-sem-quarto"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /excursoes/{excursaoId}/hospedagens/{vinculoId}/guias-sem-quarto",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/excursoes/{excursaoId}/hospedagens/{vinculoId}/guias-sem-quarto",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "excursoes",
                                "{excursaoId}",
                                "hospedagens",
                                "{vinculoId}",
                                "guias-sem-quarto"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                }
            ]
        },
        {
            "name": "Ingressos",
            "description": "Addon Ingressos — cadastro de atrações/eventos, categorias (tipos de ingresso com preço custo/venda), controle de estoque por data e vendas. Requer addon `ingressos` ativo no tenant (403 caso contrário).",
            "item": [
                {
                    "name": "GET /ingressos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos?ativo=&cidade=&search=&data_min=&data_max=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos"
                            ],
                            "query": [
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "",
                                    "disabled": true
                                },
                                {
                                    "key": "cidade",
                                    "value": "",
                                    "description": "",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por nome",
                                    "disabled": true
                                },
                                {
                                    "key": "data_min",
                                    "value": "",
                                    "description": "Data evento mínima YYYY-MM-DD",
                                    "disabled": true
                                },
                                {
                                    "key": "data_max",
                                    "value": "",
                                    "description": "Data evento máxima YYYY-MM-DD",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Max 100 (default 20)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Paginada. Filtros: ativo, cidade, search, data_min, data_max."
                    }
                },
                {
                    "name": "POST /ingressos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos"
                            ],
                            "query": []
                        },
                        "description": "Quando `tipo_venda=direta` (default), `categorias[]` é obrigatório. Quando `tipo_venda=afiliado`, `website` é obrigatório e categorias podem ser omitidas.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"local\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"website\": null,\n    \"imagem_url\": null,\n    \"data_evento\": null,\n    \"hora_evento\": null,\n    \"quantidade_total\": null,\n    \"quantidade_limite_venda\": null,\n    \"ativo\": null,\n    \"destaque\": null,\n    \"tipo_venda\": null,\n    \"categorias\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /ingressos/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "PUT /ingressos/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"descricao\": null,\n    \"ativo\": null,\n    \"destaque\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /ingressos/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Falha com 422 se houver vendas registradas."
                    }
                },
                {
                    "name": "PATCH /ingressos/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /ingressos/{id}/categorias",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/categorias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "categorias"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "POST /ingressos/{id}/categorias",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/categorias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "categorias"
                            ],
                            "query": []
                        },
                        "description": "Ex: Inteira, Meia, Idoso, Estudante. Cada categoria tem preço de custo e venda.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"idade_min\": null,\n    \"idade_max\": null,\n    \"preco_custo\": \"<number>\",\n    \"preco_venda\": \"<number>\",\n    \"ativo\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /ingressos/{id}/categorias/{categoriaId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/categorias/{categoriaId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "categorias",
                                "{categoriaId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "DELETE /ingressos/{id}/categorias/{categoriaId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/categorias/{categoriaId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "categorias",
                                "{categoriaId}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "GET /ingressos/{id}/estoque",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/estoque?data_min=&data_max=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "estoque"
                            ],
                            "query": [
                                {
                                    "key": "data_min",
                                    "value": "",
                                    "description": "YYYY-MM-DD",
                                    "disabled": true
                                },
                                {
                                    "key": "data_max",
                                    "value": "",
                                    "description": "YYYY-MM-DD",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": ""
                    }
                },
                {
                    "name": "PUT /ingressos/{id}/estoque",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/{id}/estoque",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "{id}",
                                "estoque"
                            ],
                            "query": []
                        },
                        "description": "Upsert por (ingresso_id, data). Para alterar várias datas chame múltiplas vezes.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"data\": \"<string>\",\n    \"quantidade_total\": \"<integer>\",\n    \"disponivel\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /ingressos/vendas",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/vendas?ingresso_id=&status=&data_min=&data_max=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "vendas"
                            ],
                            "query": [
                                {
                                    "key": "ingresso_id",
                                    "value": "",
                                    "description": "",
                                    "disabled": true
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "pendente|pago|cancelado|usado",
                                    "disabled": true
                                },
                                {
                                    "key": "data_min",
                                    "value": "",
                                    "description": "YYYY-MM-DD",
                                    "disabled": true
                                },
                                {
                                    "key": "data_max",
                                    "value": "",
                                    "description": "YYYY-MM-DD",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Paginada. Filtros: ingresso_id, status, data_min, data_max."
                    }
                },
                {
                    "name": "POST /ingressos/vendas",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/vendas",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "vendas"
                            ],
                            "query": []
                        },
                        "description": "Registra venda manualmente (ex: vendido no balcão). `valor_total` é calculado automaticamente como `quantidade * valor_unitario - desconto`.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"ingresso_id\": \"<integer>\",\n    \"categoria_id\": \"<integer>\",\n    \"cliente_id\": null,\n    \"comprador_nome\": \"<string>\",\n    \"comprador_cpf\": null,\n    \"comprador_email\": null,\n    \"comprador_telefone\": null,\n    \"quantidade\": \"<integer>\",\n    \"valor_unitario\": \"<number>\",\n    \"desconto\": null,\n    \"forma_pagamento\": null,\n    \"data_uso\": null,\n    \"observacoes\": null,\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /ingressos/vendas/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/vendas/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "vendas",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": ""
                    }
                },
                {
                    "name": "PATCH /ingressos/vendas/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/ingressos/vendas/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "ingressos",
                                "vendas",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"status\": \"<string>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Experiências",
            "description": "Módulo de Experiências Turísticas (passeios): catálogo com categorias, horários, extras, temporadas e fotos, além das vendas com voucher por pessoa e check-in individual. Requer o addon passeios-experiencias ativo no tenant.",
            "item": [
                {
                    "name": "GET /passeios",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios?page=&per_page=&ativo=&destaque=&mostrar_site=&status=&cidade=&estado=&pais=&categoria_tipo=&dificuldade=&search=&include=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Número da página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens por página (max: 100)",
                                    "disabled": true
                                },
                                {
                                    "key": "ativo",
                                    "value": "",
                                    "description": "Filtra por disponível para venda",
                                    "disabled": true
                                },
                                {
                                    "key": "destaque",
                                    "value": "",
                                    "description": "Somente destacados",
                                    "disabled": true
                                },
                                {
                                    "key": "mostrar_site",
                                    "value": "",
                                    "description": "Somente os publicados no site",
                                    "disabled": true
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "rascunho ou publicado",
                                    "disabled": true
                                },
                                {
                                    "key": "cidade",
                                    "value": "",
                                    "description": "Busca parcial por cidade",
                                    "disabled": true
                                },
                                {
                                    "key": "estado",
                                    "value": "",
                                    "description": "UF exata",
                                    "disabled": true
                                },
                                {
                                    "key": "pais",
                                    "value": "",
                                    "description": "País exato",
                                    "disabled": true
                                },
                                {
                                    "key": "categoria_tipo",
                                    "value": "",
                                    "description": "Tipo do passeio",
                                    "disabled": true
                                },
                                {
                                    "key": "dificuldade",
                                    "value": "",
                                    "description": "Nível de dificuldade",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca em nome, descrição curta e local",
                                    "disabled": true
                                },
                                {
                                    "key": "include",
                                    "value": "",
                                    "description": "Sub-recursos no mesmo payload: categorias, horarios, extras, temporadas, fotos (separados por vírgula)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada do catálogo, com a contagem de categorias, horários, extras e vendas de cada passeio."
                    }
                },
                {
                    "name": "GET /passeios/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna o passeio com categorias, horários, extras, temporadas e fotos já carregados."
                    }
                },
                {
                    "name": "POST /passeios",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios"
                            ],
                            "query": []
                        },
                        "description": "Cria um passeio. Aceita as categorias no mesmo payload, porque passeio sem categoria não vende. O slug é gerado a partir do nome quando não informado.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"slug\": null,\n    \"descricao\": null,\n    \"descricao_curta\": null,\n    \"o_que_inclui\": null,\n    \"o_que_nao_inclui\": null,\n    \"o_que_levar\": null,\n    \"dicas\": null,\n    \"requisitos\": null,\n    \"local\": null,\n    \"endereco\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"pais\": null,\n    \"continente\": null,\n    \"destino_slug\": null,\n    \"ponto_encontro\": null,\n    \"ponto_encontro_maps\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"imagem\": null,\n    \"videos\": null,\n    \"duracao_minutos\": null,\n    \"dificuldade\": null,\n    \"idade_minima\": null,\n    \"capacidade_maxima\": null,\n    \"categoria_tipo\": null,\n    \"antecedencia_minima_horas\": null,\n    \"cancelamento_horas\": null,\n    \"reembolso_percentual\": null,\n    \"permitir_reagendamento\": null,\n    \"exigir_waiver\": null,\n    \"mostrar_site\": null,\n    \"ativo\": null,\n    \"destaque\": null,\n    \"status\": null,\n    \"banner_display_mode\": null,\n    \"meta_title\": null,\n    \"meta_description\": null,\n    \"meta_keywords\": null,\n    \"observacoes_internas\": null,\n    \"preco_display_modo\": null,\n    \"preco_display_intervalo\": null,\n    \"modo_preco\": null,\n    \"seguro_link\": null,\n    \"seguro_label\": null,\n    \"badge_sazonalidade\": null,\n    \"tags_categorias\": null,\n    \"import_source\": null,\n    \"import_external_id\": null,\n    \"categorias\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /passeios/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualização parcial: envie apenas os campos que quer mudar.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"slug\": null,\n    \"descricao\": null,\n    \"descricao_curta\": null,\n    \"o_que_inclui\": null,\n    \"o_que_nao_inclui\": null,\n    \"o_que_levar\": null,\n    \"dicas\": null,\n    \"requisitos\": null,\n    \"local\": null,\n    \"endereco\": null,\n    \"cidade\": null,\n    \"estado\": null,\n    \"pais\": null,\n    \"continente\": null,\n    \"destino_slug\": null,\n    \"ponto_encontro\": null,\n    \"ponto_encontro_maps\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"imagem\": null,\n    \"videos\": null,\n    \"duracao_minutos\": null,\n    \"dificuldade\": null,\n    \"idade_minima\": null,\n    \"capacidade_maxima\": null,\n    \"categoria_tipo\": null,\n    \"antecedencia_minima_horas\": null,\n    \"cancelamento_horas\": null,\n    \"reembolso_percentual\": null,\n    \"permitir_reagendamento\": null,\n    \"exigir_waiver\": null,\n    \"mostrar_site\": null,\n    \"ativo\": null,\n    \"destaque\": null,\n    \"status\": null,\n    \"banner_display_mode\": null,\n    \"meta_title\": null,\n    \"meta_description\": null,\n    \"meta_keywords\": null,\n    \"observacoes_internas\": null,\n    \"preco_display_modo\": null,\n    \"preco_display_intervalo\": null,\n    \"modo_preco\": null,\n    \"seguro_link\": null,\n    \"seguro_label\": null,\n    \"badge_sazonalidade\": null,\n    \"tags_categorias\": null,\n    \"import_source\": null,\n    \"import_external_id\": null,\n    \"categorias\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PATCH /passeios/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "Atalho para mudar ativo, mostrar_site, destaque ou status sem enviar o cadastro inteiro.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"ativo\": null,\n    \"mostrar_site\": null,\n    \"destaque\": null,\n    \"status\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /passeios/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove o passeio e seus sub-recursos. Bloqueado com 422 quando já há vendas registradas (PASSEIO_COM_VENDAS): nesse caso use ativo=false, que tira da venda sem apagar histórico."
                    }
                },
                {
                    "name": "GET /passeios/{id}/categorias",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/categorias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "categorias"
                            ],
                            "query": []
                        },
                        "description": "Tipos de bilhete do passeio (Adulto, Criança, Meia), com preço de custo e de venda."
                    }
                },
                {
                    "name": "POST /passeios/{id}/categorias",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/categorias",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "categorias"
                            ],
                            "query": []
                        },
                        "description": "Tipos de bilhete do passeio (Adulto, Criança, Meia), com preço de custo e de venda.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"preco_venda\": \"<number>\",\n    \"preco_custo\": null,\n    \"idade_min\": null,\n    \"idade_max\": null,\n    \"conta_como\": null,\n    \"estoque_id\": null,\n    \"estoque_consome\": null,\n    \"ativo\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /passeios/{id}/categorias/{categoriaId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/categorias/{categoriaId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "categorias",
                                "{categoriaId}"
                            ],
                            "query": []
                        },
                        "description": "Atualização parcial: envie apenas os campos que quer mudar.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"descricao\": null,\n    \"preco_venda\": null,\n    \"preco_custo\": null,\n    \"idade_min\": null,\n    \"idade_max\": null,\n    \"conta_como\": null,\n    \"estoque_id\": null,\n    \"estoque_consome\": null,\n    \"ativo\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /passeios/{id}/categorias/{categoriaId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/categorias/{categoriaId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "categorias",
                                "{categoriaId}"
                            ],
                            "query": []
                        },
                        "description": "Bloqueado com 422 quando a categoria já tem vendas (RECURSO_EM_USO): nesse caso use ativo=false."
                    }
                },
                {
                    "name": "GET /passeios/{id}/horarios",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/horarios",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "horarios"
                            ],
                            "query": []
                        },
                        "description": "Grade de saídas: recorrente por dia da semana, diária ou em data específica."
                    }
                },
                {
                    "name": "POST /passeios/{id}/horarios",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/horarios",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "horarios"
                            ],
                            "query": []
                        },
                        "description": "Grade de saídas: recorrente por dia da semana, diária ou em data específica.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo_recorrencia\": \"<string>\",\n    \"dias_semana\": null,\n    \"data_especifica\": null,\n    \"horario_inicio\": \"<string>\",\n    \"horario_fim\": null,\n    \"vagas\": null,\n    \"vigencia_inicio\": null,\n    \"vigencia_fim\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /passeios/{id}/horarios/{horarioId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/horarios/{horarioId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "horarios",
                                "{horarioId}"
                            ],
                            "query": []
                        },
                        "description": "Atualização parcial: envie apenas os campos que quer mudar.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"tipo_recorrencia\": null,\n    \"dias_semana\": null,\n    \"data_especifica\": null,\n    \"horario_inicio\": null,\n    \"horario_fim\": null,\n    \"vagas\": null,\n    \"vigencia_inicio\": null,\n    \"vigencia_fim\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /passeios/{id}/horarios/{horarioId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/horarios/{horarioId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "horarios",
                                "{horarioId}"
                            ],
                            "query": []
                        },
                        "description": "Remove o registro."
                    }
                },
                {
                    "name": "GET /passeios/{id}/extras",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/extras",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "extras"
                            ],
                            "query": []
                        },
                        "description": "Itens opcionais vendidos junto com o passeio."
                    }
                },
                {
                    "name": "POST /passeios/{id}/extras",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/extras",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "extras"
                            ],
                            "query": []
                        },
                        "description": "Itens opcionais vendidos junto com o passeio.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"descricao\": null,\n    \"preco\": \"<number>\",\n    \"tipo_cobranca\": null,\n    \"quantidade_maxima\": null,\n    \"ativo\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /passeios/{id}/extras/{extraId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/extras/{extraId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "extras",
                                "{extraId}"
                            ],
                            "query": []
                        },
                        "description": "Atualização parcial: envie apenas os campos que quer mudar.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"descricao\": null,\n    \"preco\": null,\n    \"tipo_cobranca\": null,\n    \"quantidade_maxima\": null,\n    \"ativo\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /passeios/{id}/extras/{extraId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/extras/{extraId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "extras",
                                "{extraId}"
                            ],
                            "query": []
                        },
                        "description": "Remove o registro."
                    }
                },
                {
                    "name": "GET /passeios/{id}/temporadas",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/temporadas",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "temporadas"
                            ],
                            "query": []
                        },
                        "description": "Ajuste de preço por período. Quando dois períodos se sobrepõem, vence a maior prioridade."
                    }
                },
                {
                    "name": "POST /passeios/{id}/temporadas",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/temporadas",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "temporadas"
                            ],
                            "query": []
                        },
                        "description": "Ajuste de preço por período. Quando dois períodos se sobrepõem, vence a maior prioridade.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": \"<string>\",\n    \"data_inicio\": \"<date>\",\n    \"data_fim\": \"<date>\",\n    \"tipo_ajuste\": \"<string>\",\n    \"valor_ajuste\": \"<number>\",\n    \"prioridade\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /passeios/{id}/temporadas/{temporadaId}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/temporadas/{temporadaId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "temporadas",
                                "{temporadaId}"
                            ],
                            "query": []
                        },
                        "description": "Atualização parcial: envie apenas os campos que quer mudar.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"nome\": null,\n    \"data_inicio\": null,\n    \"data_fim\": null,\n    \"tipo_ajuste\": null,\n    \"valor_ajuste\": null,\n    \"prioridade\": null,\n    \"ativo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /passeios/{id}/temporadas/{temporadaId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/temporadas/{temporadaId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "temporadas",
                                "{temporadaId}"
                            ],
                            "query": []
                        },
                        "description": "Remove o registro."
                    }
                },
                {
                    "name": "GET /passeios/{id}/fotos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/fotos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "fotos"
                            ],
                            "query": []
                        },
                        "description": "Galeria do passeio, na ordem de exibição."
                    }
                },
                {
                    "name": "POST /passeios/{id}/fotos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/fotos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "fotos"
                            ],
                            "query": []
                        },
                        "description": "Adiciona uma foto por URL. O arquivo deve estar hospedado pelo integrador.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"url\": \"<string>\",\n    \"thumbnail_url\": null,\n    \"titulo\": null,\n    \"descricao\": null,\n    \"ordem\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /passeios/{id}/fotos/{fotoId}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/{id}/fotos/{fotoId}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "{id}",
                                "fotos",
                                "{fotoId}"
                            ],
                            "query": []
                        },
                        "description": "Remove a foto da galeria."
                    }
                },
                {
                    "name": "GET /passeios/vendas",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas?page=&per_page=&passeio_id=&cliente_id=&sessao_id=&status=&checked_in=&origem=&codigo_voucher=&data_de=&data_ate=&search=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Número da página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens por página (max: 100)",
                                    "disabled": true
                                },
                                {
                                    "key": "passeio_id",
                                    "value": "",
                                    "description": "Filtra por passeio",
                                    "disabled": true
                                },
                                {
                                    "key": "cliente_id",
                                    "value": "",
                                    "description": "Filtra por cliente",
                                    "disabled": true
                                },
                                {
                                    "key": "sessao_id",
                                    "value": "",
                                    "description": "Filtra por sessão",
                                    "disabled": true
                                },
                                {
                                    "key": "status",
                                    "value": "",
                                    "description": "reservado, confirmado, usado ou cancelado",
                                    "disabled": true
                                },
                                {
                                    "key": "checked_in",
                                    "value": "",
                                    "description": "Somente com ou sem check-in",
                                    "disabled": true
                                },
                                {
                                    "key": "origem",
                                    "value": "",
                                    "description": "Canal da venda",
                                    "disabled": true
                                },
                                {
                                    "key": "codigo_voucher",
                                    "value": "",
                                    "description": "Código do voucher da venda (case-insensitive)",
                                    "disabled": true
                                },
                                {
                                    "key": "data_de",
                                    "value": "",
                                    "description": "Data inicial da sessão",
                                    "disabled": true
                                },
                                {
                                    "key": "data_ate",
                                    "value": "",
                                    "description": "Data final da sessão",
                                    "disabled": true
                                },
                                {
                                    "key": "search",
                                    "value": "",
                                    "description": "Busca por nome ou documento do beneficiário",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada das vendas, com passeio, categoria, cliente e a contagem de itens do voucher."
                    }
                },
                {
                    "name": "GET /passeios/vendas/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna a venda com os itens do voucher, os pagamentos e os check-ins."
                    }
                },
                {
                    "name": "POST /passeios/vendas",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas"
                            ],
                            "query": []
                        },
                        "description": "Registra uma venda e gera o código do voucher. Sem valor_unitario, usa o preco_venda da categoria, para o integrador não precisar replicar a tabela de preços. Recusa com 422 quando a categoria não pertence ao passeio (CATEGORIA_DE_OUTRO_PASSEIO) ou quando o desconto deixa o total negativo (TOTAL_NEGATIVO).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"passeio_id\": \"<integer>\",\n    \"categoria_id\": \"<integer>\",\n    \"sessao_id\": null,\n    \"cliente_id\": null,\n    \"beneficiario_nome\": \"<string>\",\n    \"beneficiario_documento\": null,\n    \"beneficiario_telefone\": null,\n    \"quantidade\": \"<integer>\",\n    \"valor_unitario\": null,\n    \"valor_custo\": null,\n    \"valor_extras\": null,\n    \"extras\": null,\n    \"desconto\": null,\n    \"desconto_motivo\": null,\n    \"acrescimo\": null,\n    \"acrescimo_motivo\": null,\n    \"status\": null,\n    \"origem\": null,\n    \"campos_customizados\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /passeios/vendas/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza dados do beneficiário, extras e valores. Não muda status: use o endpoint próprio. Venda cancelada não pode ser editada (VENDA_CANCELADA).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"beneficiario_nome\": null,\n    \"beneficiario_documento\": null,\n    \"beneficiario_telefone\": null,\n    \"sessao_id\": null,\n    \"extras\": null,\n    \"valor_extras\": null,\n    \"desconto\": null,\n    \"desconto_motivo\": null,\n    \"acrescimo\": null,\n    \"acrescimo_motivo\": null,\n    \"campos_customizados\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PATCH /passeios/vendas/{id}/status",
                    "request": {
                        "method": "PATCH",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}/status",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}",
                                "status"
                            ],
                            "query": []
                        },
                        "description": "Não existe DELETE de venda: cancelar preserva voucher e financeiro. Ao cancelar, motivo_cancelamento é obrigatório e a data é carimbada.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"status\": \"<string>\",\n    \"motivo_cancelamento\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /passeios/vendas/{id}/pagamentos",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}/pagamentos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}",
                                "pagamentos"
                            ],
                            "query": []
                        },
                        "description": "Pagamentos lançados nesta venda."
                    }
                },
                {
                    "name": "POST /passeios/vendas/{id}/pagamentos",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}/pagamentos",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}",
                                "pagamentos"
                            ],
                            "query": []
                        },
                        "description": "Lança um pagamento na venda.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"valor\": \"<number>\",\n    \"forma\": \"<string>\",\n    \"data_pagamento\": null,\n    \"observacao\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /passeios/vendas/{id}/voucher",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}/voucher",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}",
                                "voucher"
                            ],
                            "query": []
                        },
                        "description": "O voucher tem UM item por pessoa, cada um com seu QR code. Uma venda de 4 pessoas gera 4 itens, e o check-in pode ser individual."
                    }
                },
                {
                    "name": "GET /passeios/voucher/{codigo}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/voucher/{codigo}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "voucher",
                                "{codigo}"
                            ],
                            "query": []
                        },
                        "description": "Usado na portaria. Procura primeiro pelo código do ITEM (o que está no QR de cada pessoa) e, se não achar, pelo código da venda. Busca case-insensitive, porque leitor de QR devolve em caixa variada. O campo \"tipo\" na resposta diz qual dos dois foi encontrado."
                    }
                },
                {
                    "name": "POST /passeios/vendas/{id}/checkin",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}/checkin",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}",
                                "checkin"
                            ],
                            "query": []
                        },
                        "description": "Sem voucher_item_id, marca a venda inteira. Com ele, marca só aquela pessoa, que é o caso de grupo chegando em horários diferentes. A venda só passa para \"usado\" quando não resta item pendente. Recusa item já usado (ITEM_JA_USADO), item de outra venda (ITEM_DE_OUTRA_VENDA) e venda cancelada (VENDA_CANCELADA).",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"voucher_item_id\": null,\n    \"latitude\": null,\n    \"longitude\": null,\n    \"guia_id\": null,\n    \"registrado_por_nome\": null,\n    \"metodo\": null,\n    \"dispositivo\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "GET /passeios/vendas/{id}/checkins",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/passeios/vendas/{id}/checkins",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "passeios",
                                "vendas",
                                "{id}",
                                "checkins"
                            ],
                            "query": []
                        },
                        "description": "Histórico de check-ins, do mais recente para o mais antigo."
                    }
                }
            ]
        },
        {
            "name": "Webhooks",
            "description": "Cadastro e gestão de webhooks. Eventos chegam via POST com envelope padronizado (event, event_id UUID, created_at ISO 8601, data) + assinatura HMAC-SHA256 no header X-Viagilize-Signature.",
            "item": [
                {
                    "name": "GET /webhooks/events",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/events",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "events"
                            ],
                            "query": []
                        },
                        "description": "Retorna todos os eventos que podem ser inscritos, agrupados por categoria (reservas, pagamentos, clientes, excursoes, contratos, checkin)."
                    }
                },
                {
                    "name": "GET /webhooks",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks?page=&per_page=",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks"
                            ],
                            "query": [
                                {
                                    "key": "page",
                                    "value": "",
                                    "description": "Página",
                                    "disabled": true
                                },
                                {
                                    "key": "per_page",
                                    "value": "",
                                    "description": "Itens (max 100)",
                                    "disabled": true
                                }
                            ]
                        },
                        "description": "Lista paginada de webhooks cadastrados."
                    }
                },
                {
                    "name": "GET /webhooks/{id}",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Retorna dados de um webhook (sem expor o secret)."
                    }
                },
                {
                    "name": "POST /webhooks",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks"
                            ],
                            "query": []
                        },
                        "description": "Cadastra um webhook. Retorna o secret UMA UNICA VEZ — guarde com seguranca para validar HMAC nas entregas.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"name\": \"<string>\",\n    \"url\": \"<string>\",\n    \"events\": \"<array>\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "PUT /webhooks/{id}",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Atualiza nome, url, lista de eventos ou flag is_active.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"name\": null,\n    \"url\": null,\n    \"events\": null,\n    \"is_active\": null\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "DELETE /webhooks/{id}",
                    "request": {
                        "method": "DELETE",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/{id}",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "{id}"
                            ],
                            "query": []
                        },
                        "description": "Remove definitivamente o webhook. Entregas em fila para esse webhook deixam de ser processadas."
                    }
                },
                {
                    "name": "POST /webhooks/{id}/regenerate-secret",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/{id}/regenerate-secret",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "{id}",
                                "regenerate-secret"
                            ],
                            "query": []
                        },
                        "description": "Gera um novo secret para o webhook. Invalida HMAC de qualquer entrega futura usando o secret antigo. Atualize seu receiver imediatamente."
                    }
                },
                {
                    "name": "POST /webhooks/{id}/test",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_token}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/{id}/test",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "{id}",
                                "test"
                            ],
                            "query": []
                        },
                        "description": "Envia um evento test.ping para a URL configurada. Útil para validar que o receiver está respondendo corretamente."
                    }
                }
            ]
        }
    ]
}