def docs() -> str:
    return """
Insere um novo atendimento avulso no sistema SIGA para a área de Infraestrutura.

**INSTRUÇÃO PARA O AGENTE IA:**
ANTES de executar esta função de inserção:
1. MOSTRE ao usuário TODAS as informações que serão criadas/inseridas no sistema
2. APRESENTE os dados de forma clara e organizada (datas, descrição, tipo, origem, categoria, equipe, projeto, analista, plaqueta, etc.)
3. PEÇA confirmação explícita do usuário: "Confirma a criação? (sim/não)"
4. SÓ EXECUTE esta função se o usuário confirmar explicitamente
5. Se o usuário não confirmar, cancele a operação e informe que foi cancelada

Esta função cria um novo registro de atendimento avulso independente de qualquer Ordem de Serviço,
incluindo informações como datas, descrição, tipo, origem, categoria, equipe, projeto e plaqueta.
Realiza validação de todos os campos obrigatórios e conversão automática de datas.

**ORIENTAÇÃO PARA SOLICITAÇÕES GENÉRICAS:**
Quando o usuário solicitar "inserir/criar um atendimento" sem especificar o tipo:
1. **Perguntar qual tipo**: Atendimento OS, Atendimento Avulso Sistemas, ou Atendimento Avulso Infraestrutura
2. **Se escolher "Avulso"**: Perguntar se é de Sistemas ou Infraestrutura
3. **Depois de definir o tipo**: Direcionar para a função específica correspondente

Esta função é específica para **Atendimentos Avulso Infraestrutura**. Para outros tipos, use:
- `inserir_atendimentos_os` (vinculados a OS)  
- `inserir_atendimento_avulso_sistemas` (área de Sistemas)

**Endpoint utilizado:** `inserirAtendimentoAvulsoSigaIA`

**Estrutura do XML retornado:**
```xml
<atendimentos_avulsos_infra dataIni="2024-01-15 09:00:00" dataFim="2024-01-15 17:00:00"
                        matSolicitante="123456" tipo="14" descricao="Descrição"
                        origem="1" equipe="Help Aero" analista="789" projeto="61" categoria="27" plaqueta="222222">
    <atendimento_avulso_infra sistema="SIGA">
        <status>sucesso</status>
        <mensagem>Atendimento avulso cadastrado com sucesso!</mensagem>
    </atendimento_avulso_infra>
</atendimentos_avulsos_infra>
```

**Em caso de erro de validação:**
```xml
<erro_validacao sistema="SIGA" funcao="inserir_atendimento_avulso_infraestrutura">
    <erro sistema="SIGA">
        <status>erro</status>
        <tipo_erro>tipo_invalido</tipo_erro>
        <tipo_informado>Tipo Inválido</tipo_informado>
        <mensagem>Tipo 'Tipo Inválido' não encontrado na constante TIPO_TO_NUMBER_ATENDIMENTO_AVULSO_INFRAESTRUTURA</mensagem>
        <tipos_validos>['Atividade Interna', 'Implementação', 'Incidente', 'Manutenção Corretiva', 'Manutenção de Banco', 'Manutenção Preventiva', 'Monitoramento',	'Requisição', 'Suporte', 'Treinamento']</tipos_validos>
    </erro>
</erro_validacao>
```

**Em caso de erro de validação (analista obrigatório):**
```xml
<erro_validacao sistema="SIGA" funcao="inserir_atendimento_avulso_infraestrutura">
    <erro sistema="SIGA">
        <status>erro</status>
        <tipo_erro>analista_obrigatorio</tipo_erro>
        <campo_invalido>codigo_analista</campo_invalido>
        <valor_informado>0</valor_informado>
        <mensagem>Campo 'codigo_analista' é obrigatório e deve ser 'CURRENT_USER' ou um número válido maior que zero. Valor informado: 0</mensagem>
    </erro>
</erro_validacao>
```

**Em caso de erro (dados inválidos):**
```xml
<atendimentos_avulsos_infra dataIni="2024-01-15 09:00:00" dataFim="2024-01-15 17:00:00"
                        matSolicitante="123456" tipo="14" descricao="Descrição"
                        origem="1" equipe="Help Aero" analista="789" projeto="61" categoria="27" plaqueta="222222">
    <atendimento_avulso_infra sistema="SIGA">
        <status>erro</status>
        <mensagem>Não foi possível salvar o atendimento avulso. Verifique as informações digitadas.</mensagem>
    </atendimento_avulso_infra>
</atendimentos_avulsos_infra>
```

**Em caso de outros erros:**
```xml
<atendimentos_avulsos_infra dataIni="2024-01-15 09:00:00" dataFim="2024-01-15 17:00:00"
                        matSolicitante="123456" tipo="14" descricao="Descrição"
                        origem="1" equipe="Help Aero" analista="789" projeto="61" categoria="27" plaqueta="222222">
    <atendimento_avulso_infra sistema="SIGA">
        <status>erro</status>
        <mensagem>Erro ao gravar o atendimento avulso. Tente novamente.</mensagem>
    </atendimento_avulso_infra>
</atendimentos_avulsos_infra>
```


Args:
    data_inicio (str): Data e hora de início do atendimento avulso.
        Aceita formatos de data ou palavras-chave como "hoje", "agora", "ontem"
    data_fim (str): Data e hora de fim do atendimento avulso.
        Aceita formatos de data ou palavras-chave como "hoje", "agora", "ontem"
    matricula_solicitante (str | Literal["CURRENT_USER"]): Matrícula do usuário que está solicitando o atendimento avulso
    descricao_atendimento (str): Descrição detalhada do atendimento avulso a ser realizado
    codigo_analista (str | Literal["CURRENT_USER"]): **[OBRIGATÓRIO]** Matrícula do analista/usuário responsável pelo atendimento avulso.
    Deve ser "CURRENT_USER" ou um número válido maior que zero. Não aceita valores vazios, "0" ou não-numéricos.
    tipo (Literal): Tipo do atendimento avulso, deve ser um dos valores válidos:
        - "Atividade Interna" (código 19)
        - "Implementação" (código 15)
        - "Incidente" (código 23)
        - "Manutenção Corretiva" (código 17)
        - "Manutenção de Banco" (código 10)
        - "Manutenção Preventiva" (código 16)
        - "Monitoramento" (código 22)
        - "Requisição" (código 24)
        - "Suporte" (código 14) - padrão
        - "Treinamento" (código 18)
    origem (Literal): Canal/origem do atendimento avulso, deve ser um dos valores válidos:
        - "E-mail" (código 1) - padrão
        - "Pessoalmente" (código 2)
        - "Teams" (código 3)
        - "Telefone" (código 4)
        - "WhatsApp" (código 5)
        - "Plantão" (código 7)
        - "SAE" (código 11)
    categoria (Literal): Categoria relacionado ao atendimento avulso, deve ser um dos valores válidos:
        - "AD - Alterar Configuração do Domínio" (código 13)
        - "AD - Criar usuário" (código 93)
        - "AD - Desbloquear usuário" (código 68)
        - "AD - Excluir/Bloquear usuário" (código 67)
        - "AD - Liberar permissões de acesso" (código 11)
        - "AD - Redefinir Senha" (código 12)
        - "AD - Suporte/Dúvidas/Outros" (código 39)
        - "BD - Alterar tabela" (código 72)
        - "BD - Atividade Interna" (código 94)
        - "BD - Atualizar esquema" (código 56)
        - "BD - Corrigir lentidão e bloqueios" (código 57)
        - "BD - Criar tabela/índice" (código 71)
        - "BD - Criar usuário" (código 54)
        - "BD - Liberar acessos/permissões" (código 69)
        - "BD - Monitorar rotina de backups e testes de restauração" (código 55)
        - "BD - Reiniciar tabela / Tablespace" (código 53)
        - "BD - Restauração de LOG" (código 70)
        - "BD - Tunning de instrução" (código 58)
        - "DB - Suporte/Dúvidas/Outros" (código 96)
        - "DPO - Analisar contratos" (código 74)
        - "DPO - Analisar/Autorizar autorização de dados e imagens" (código 75)
        - "DPO - Conscientizar sobre segurança digital" (código 76)
        - "DPO - Criar/Implementar política de segurança" (código 77)
        - "E-mail - Alterar Colaborador Responsável" (código 5)
        - "E-mail - Configurar Google Workspace" (código 9)
        - "E-mail - Configurar primeiro acesso" (código 8)
        - "E-mail - Criar e-mail" (código 6)
        - "E-mail - Desbloquear e-mail" (código 78)
        - "E-mail - Excluir/Bloquear e-mail" (código 79)
        - "E-mail - Redefinir senha" (código 7)
        - "E-mail - Suporte/Dúvidas/Outros" (código 40)
        - "Hardware - Atualizar driver(s)/Firmware(s)/Limpeza computador/notebook" (código 35)
        - "Hardware - Atualizar driver(s)/Firmware(s)/Limpeza impressora/scanner" (código 65)
        - "Hardware - Backup" (código 24)
        - "Hardware - Consertar computador/notebook" (código 73)
        - "Hardware - Consertar/Trocar impressora/scanner" (código 80)
        - "Hardware - Formatar" (código 25)
        - "Hardware - Instalar Antivírus" (código 34)
        - "Hardware - Instalar/Desinstalar/Atualizar Software" (código 26)
        - "Hardware - Suporte/Dúvidas/Outros" (código 27) - padrão
        - "Inclusão / Remoção de Colaboradores" (código 62)
        - "Liberar dispositivo de armazenamento" (código 97)
        - "Publicação - AVA" (código 66)
        - "Rede - Alterar perfil de acesso" (código 2)
        - "Rede - Ativar/Crimpar Ponto de Rede" (código 19)
        - "Rede - Configurar Firewall" (código 4)
        - "Rede - Criar/Alterar regra Firewall" (código 3)
        - "Rede - Instalar/Configurar/Atualizar AP/Câmera/Router/Voip" (código 22)
        - "Rede - Instalar/Configurar/Atualizar controle de acesso/catraca" (código 23)
        - "Rede - Instalar/Configurar/Atualizar REP" (código 21)
        - "Rede - Instalar/Configurar/Atualizar Switch/VLAN" (código 20)
        - "Rede - Liberar internet" (código 81)
        - "Rede - Suporte VPN" (código 60)
        - "Rede - Suporte/Dúvidas/Outros" (código 41)
        - "Segurança - Investigar ataques cibernéticos" (código 83)
        - "Segurança - Remover ameaças detectadas" (código 82)
        - "Serviços - Atividade interna" (código 28)
        - "Serviços - Empréstimo de Equipamento" (código 42)
        - "Serviços - Realizar auditoria/Criar relatório" (código 1)
        - "Serviços - Transferir/Recolher equipamento" (código 36)
        - "Serviços - Treinamento" (código 29)
        - "Servidores - Alterar configuração" (código 15)
        - "Servidores - Atualizar driver(s)/Firmware(s)/Limpeza" (código 89)
        - "Servidores - Atualizar/Reiniciar" (código 16)
        - "Servidores - Criar usuário" (código 85)
        - "Servidores - Disparar/Conferir/Restaurar backup" (código 18)
        - "Servidores - Excluir/Bloquear Usuário" (código 84)
        - "Servidores - Liberar/Bloquear permissões" (código 86)
        - "Servidores - Manutenção Corretiva" (código 88)
        - "Servidores - Manutenção Preventiva" (código 87)
        - "Sistemas - Desbloquear usuário" (código 49)
        - "Sistemas - Instalar sistema" (código 50)
        - "Sistemas - Liberar Permissões" (código 91)
        - "Sistemas - Redefinir senha" (código 51)
        - "Sistemas - Retirar Permissões" (código 90)
        - "Sistemas - Suporte/Dúvidas/Outros" (código 52)
        - "Telefonia - Atualizar aparelho" (código 92)
        - "Telefonia - Configurar aparelho" (código 44)
        - "Telefonia - Consertar/Trocar aparelho" (código 45)
        - "Telefonia - Suporte/Dúvidas/Outros" (código 46)
        - "Verificar log de eventos" (código 98)
        - "AD - Atribuir Direitos de Acesso em Pasta/Impressora (INATIVO)" (código 32)
        - "AD - Criar/Renomear/Bloquear/Desbloquear usuário (INATIVO)" (código 10)
        - "Alterar REP (INATIVO)" (código 63)
        - "Catracas - Manutenção Corretiva/Preventiva (INATIVO)" (código 47)
        - "Coletor Biométrico - Manutenção Corretiva/Preventiva (INATIVO)" (código 48)
        - "DPO (INATIVO)" (código 64)
        - "Equipamentos - Instalar/Desinstalar (INATIVO)" (código 30)
        - "Equipamentos - Manutenção Corretiva/Preventiva (INATIVO)" (código 37)
        - "Equipamentos - Suporte/Dúvida/Outros (INATIVO)" (código 31)
        - "Firewall - Suporte/Dúvida/Outros (INATIVO)" (código 61)
        - "Internet - Suporte/Dúvidas/Outros (INATIVO)" (código 43)
        - "Servidores - Criar/Configurar (INATIVO)" (código 17)
        - "Servidores - Criar/Deletar Usuários e/ou Diretórios (INATIVO)" (código 33)
        - "Servidores - Manutenção Preventiva/Corretiva (INATIVO)" (código 14)
        - "Sistemas - Liberar/Retirar Permissão (INATIVO)" (código 59)
    equipe (Literal): Equipe responsável pelo atendimento avulso, deve ser uma das equipes válidas:
        - "Administador de Banco de Dados" (código DBA)
        - "Gerenciamento de Redes" (código REDES)
        - "Gerenciamento de Redes - Linux" (código LINUX)
        - "Gerenciamento de Redes - Windows" (código WINDOWS)
        - "Help-Desk - Aeroporto" (código Help Aero) - padrão
        - "Help-Desk - Ambulatório" (código Help Amb)
        - "Help-Desk - Araxá" (código Help Ara)
        - "Help-Desk - Centro" (código Help Cen)
        - "Help-Desk - HR" (código Help HR)
        - "Help-Desk - HVU" (código Help HVU)
        - "Help-Desk - IMM" (código Help IMM)
        - "Help-Desk - MPHU" (código Help MPHU)
        - "Help-Desk - NPG" (código Help NPG)
        - "Help-Desk - UPA Mirante" (código Help UPA_M)
        - "Help-Desk - UPA São Benedito" (código Help UPASB)
        - "Help-Desk - Via Centro" (código Help Mar)
        - "Help-Desk - Vila Gávea" (código Help-Desk)
        - "LIAE - Aeroporto" (código LIAE Aero)
        - "LIAE - Via Centro" (código LIAE Mar)
        - "Ouvidoria / Telefonia" (código OUVIDORIA)
        - "Proteção de dados" (código DPO)
        - "Publicação AVA" (código Pub-AVA)
    projeto (Literal): Projeto relacionado ao atendimento avulso, deve ser um dos valores válidos:
        - "Adequações para ONA 2022" (código 107)
        - "Adequações para ONA 2024" (código 155)
        - "Adequações para ONA 2025" (código 198)
        - "Aditivos ao contrato dos alunos" (código 125)
        - "Anonimização de prontuário do paciente" (código 143)
        - "Análise Inicial - Implantação do sistema de imagens na Policlínica" (código 15)
        - "APP do Paciente" (código 136)
        - "Autoria" (código 77)
        - "AVA - CORPORATIVO" (código 129)
        - "Campus Villa Gávea - Infraestrutura e Segurança" (código 133)
        - "Cartão Saúde Uniube" (código 181)
        - "Cartão Vital" (código 189)
        - "Consultoria externa Contábil/Financeiro" (código 170)
        - "Consultoria externa HCM" (código 171)
        - "Controle de limpeza de leitos hospitalares" (código 145)
        - "Controle de registros dos médicos" (código 137)
        - "Criar script de mapeamento das impressoras" (código 54)
        - "Desenvolvimento Componentes / Framework" (código 188)
        - "Desenvolvimento Web / Mobile" (código 186)
        - "Estudo de plataformas de CRM e Vendas" (código 156)
        - "Gestão de Sucesso dos Polos" (código 118)
        - "Graduação - ajustes na transferência, 2ª graduação - 2025" (código 197)
        - "Implantação do módulo jurídico" (código 99)
        - "Implantação do sistema No Harm - Farmácia" (código 142)
        - "Implantação Integração MVPEP e ATRIUM" (código 146)
        - "Implantação UPAs" (código 131)
        - "Integração da modalidade ECG com o PACs" (código 153)
        - "Integração entre Sistema Epimed Monitor UTI e o MVPEP" (código 174)
        - "Integração SAE e Protocolos" (código 75)
        - "ITVix - SIG Polos Integração" (código 130)
        - "Mapeamento AS IS Logística e Central de Malotes" (código 122)
        - "Melhorias e automação de atendimento - MPHU e TakeBlip" (código 120)
        - "Melhorias na Transferência externa e aproveitamento de estudos" (código 116)
        - "Melhorias no módulo de treinamento" (código 196)
        - "Melhorias no Sistema de Geração de Provas e Fechamento de Disciplinas do EAD" (código 103)
        - "Melhorias para SADT - MPHU" (código 124)
        - "Migração .Net (Entity + Crystal)" (código 101)
        - "Migração de sistemas Fox Pro" (código 138)
        - "Migração para o PHP 8" (código 100)
        - "Novo CNES das Clínicas Integradas" (código 140)
        - "Novo formato alfanumérico para o Cadastro Nacional da Pessoa Jurídica (CNPJ)" (código 205)
        - "Operacao Publicacao AVA" (código 119)
        - "Operaçao DPO" (código 114)
        - "Operação Acadêmico" (código 28)
        - "Operação Analytics" (código 151)
        - "Operação AVA" (código 67)
        - "Operação Banco de Dados" (código 207)
        - "Operação Biblioteca" (código 30)
        - "Operação Clínicas" (código 2)
        - "Operação Compras" (código 3)
        - "Operação Financeiro/Contabilidade" (código 4)
        - "Operação Gestão de Relacionamento" (código 72)
        - "Operação Help Desk" (código 61) - padrão
        - "Operação HMed" (código 64)
        - "Operação HVU" (código 5)
        - "Operação Infraestrutura" (código 62)
        - "Operação Jurídico Trabalhista" (código 201)
        - "Operação LIAE" (código 63)
        - "Operação Medicina do Trabalho" (código 199)
        - "Operação MV" (código 6)
        - "Operação RH" (código 7)
        - "Operação RMS" (código 8)
        - "Operação Saúde - Web" (código 187)
        - "Operação Segurança do Trabalho" (código 200)
        - "Operação SGA - Financeiro/Contabilidade" (código 29)
        - "Operação Site Institucional" (código 98)
        - "Operação TI" (código 19)
        - "Operação WEB Administrativo" (código 27)
        - "Overmind.ia - Automação entre MV e Convênios" (código 203)
        - "Painéis interativos de sistemas de saúde" (código 135)
        - "Projeto - Fluxo de locação de espaços físicos" (código 123)
        - "Projeto APP Marcação de Ponto para Professores" (código 139)
        - "Projeto App Pega Plantão" (código 202)
        - "Projeto AVA 3.0" (código 73)
        - "Projeto Banco de Questões" (código 84)
        - "Projeto BI" (código 89)
        - "Projeto Carrinhos Beira Leito" (código 173)
        - "Projeto Contratos Empresariais - PROED" (código 20)
        - "Projeto Controle de Acessos dos Hospitais" (código 157)
        - "Projeto Cópia de perfil" (código 108)
        - "Projeto de adequação Rede WIFI" (código 132)
        - "Projeto de Automatização de Convênios do MPHU" (código 127)
        - "Projeto de Controle de Vacinas no HVU" (código 147)
        - "Projeto de desenvolvimento IA para Plano Terapeutico" (código 204)
        - "Projeto de integração Comtele" (código 93)
        - "Projeto de integração Intersaberes" (código 92)
        - "Projeto de Melhoria de Agendamento de Serviços de Transportes" (código 193)
        - "Projeto de melhorias nas Clínicas Integradas" (código 109)
        - "Projeto de Melhorias no Controle de Contratos" (código 74)
        - "Projeto de melhorias no faturamento MPHU" (código 106)
        - "Projeto de melhorias no HVU" (código 105)
        - "Projeto de Melhorias nos Setores Jurídicos" (código 126)
        - "Projeto de melhorias SEU Financeiro" (código 112)
        - "Projeto de Solicitação de Contratação" (código 110)
        - "Projeto Digitalização Secretaria do Conselho Universitário" (código 160)
        - "Projeto Diploma Digital" (código 97)
        - "Projeto Documentação de Telas e Sistemas" (código 154)
        - "Projeto DRG Brasil - Hospitais" (código 144)
        - "Projeto Evolução do Sistema RMS-Almoxarifado" (código 195)
        - "Projeto Fluxo de Situação Acadêmica EAD" (código 38)
        - "Projeto Gestão da Permanência Qualificada" (código 36)
        - "Projeto GIT" (código 83)
        - "Projeto GPQ" (código 70)
        - "Projeto Ilhas de Impressão" (código 128)
        - "Projeto IMM - Implantação Multiempresa" (código 178)
        - "Projeto Implantação Clínicas MV" (código 190)
        - "Projeto Implantação Ábaris - secretaria digital e diplomas" (código 115)
        - "Projeto Implantação Ábaris - XML histórico parcial e oficial" (código 164)
        - "Projeto Inscrição e Matrícula dos Cursos de Graduação" (código 102)
        - "Projeto LGPD" (código 88)
        - "Projeto Limpeza dos Sistemas AVA" (código 79)
        - "Projeto MELHORIA SISTEMA de APOIO RH" (código 113)
        - "Projeto Melhorias no controle de acesso - Hospitais - Campus Centro - Estacionamentos" (código 177)
        - "Projeto Migração para .Net SGA - Financeiro" (código 31)
        - "Projeto Migração para o Sistemas Integrados WEB" (código 35)
        - "Projeto Número de Alunos - Graduação" (código 149)
        - "Projeto Número de Alunos - Pós-Graduação" (código 150)
        - "Projeto Operação Formandos" (código 152)
        - "Projeto Reestruturação do Repasse a Parceiros - PROED" (código 21)
        - "Projeto Revisão Orçamento Institucional" (código 168)
        - "Projeto RH - Análise de Danos Causados pelo Empregado" (código 185)
        - "Projeto RH - Avaliação de Desenvolvimento" (código 172)
        - "Projeto RH - Coleta de assinatura digital dos ASOs" (código 191)
        - "Projeto RH - Plano de Cargos e Salários" (código 158)
        - "Projeto SEAD CONSAE - Etapa 1" (código 16)
        - "Projeto SEAD CONSAE - Etapa 2" (código 34)
        - "Projeto Secretaria Digital" (código 86)
        - "Projeto Sistema de Avaliação da EAD" (código 78)
        - "Projeto Sistemas de Saúde - WEB" (código 175)
        - "Projeto SMS" (código 85)
        - "Projeto Unificação do PIAC" (código 81)
        - "Projeto Unificação do PROEST" (código 80)
        - "Projeto UniFlex" (código 39)
        - "Projeto Universidade do Agro" (código 111)
        - "Projeto Ábaris - Currículo dos cursos em XML" (código 165)
        - "Projeto: Migração do sistema de Compras/Bionexo" (código 192)
        - "Projetos ASSCOM" (código 90)
        - "Projetos de BIs do sistema RMS" (código 141)
        - "Projetos Estágio" (código 94)
        - "Projetos PMO" (código 96)
        - "Projetos PROPEPE" (código 91)
        - "Projetos Setor Financeiro" (código 148)
        - "Publicações AVA" (código 117)
        - "Pós EAD 2.0" (código 87)
        - "Reformulação do SITE MPHU" (código 180)
        - "RMGV" (código 76)
        - "Sistemas Parceiros" (código 82)
        - "Site Hospitalares" (código 179)
        - "Situações acadêmicas da Pós-Graduação" (código 182)
        - "Transformação Digital" (código 104)
        - "Transformação digital - Aproveitamento/transferencia/segunda graduação" (código 161)
        - "Transformação Digital - Reabertura de atividades do AVA" (código 163)
        - "Transformação Digital - Reemissão de boletos (Refit 2024)" (código 162)
        - "Universidade do Agro - Novo site" (código 183)
        - "Universidade MV" (código 159)
        - "Upgrade SO Windows Server 2012 - fim do suporte" (código 134)
        - "Vertifical da Saúde Uniube (projeto)" (código 206)
    plaqueta (str | None): Plaqueta relacionado ao equipamento que está sendo atendido.

Returns:
    str: XML formatado contendo:
        - Em caso de sucesso: confirmação da inserção com status "sucesso"
        - Em caso de erro de validação: detalhes do erro (tipo inválido, analista obrigatório, origem inválida, categoria inválida, etc.)
        - Em caso de erro de API: mensagem de erro específica
        - Em caso de erro interno: mensagem de erro genérica

        O XML sempre inclui os parâmetros enviados como atributos do elemento raiz.

Raises:
    Não levanta exceções diretamente. Todos os erros são capturados e retornados
    como XML formatado com informações detalhadas do erro.

Examples:
    >>> # Inserir atendimento avulso básico
    >>> xml = await inserir_atendimento_avulso_infraestrutura(
    ...     data_inicio="2024-01-15 09:00:00",
    ...     data_fim="2024-01-15 17:00:00",
    ...     matricula_solicitante="123456",
    ...     descricao_atendimento="Suporte ao sistema AVA",
    ...     codigo_analista=789
    ... )

    >>> # Inserir atendimento com projeto específico
    >>> xml = await inserir_atendimento_avulso_infraestrutura(
    ...     data_inicio="hoje 09:00",
    ...     data_fim="hoje 17:00",
    ...     matricula_solicitante="654321",
    ...     descricao_atendimento="Manutenção preventiva do banco de dados",
    ...     codigo_analista=456,
    ...     tipo="Manutenção de Banco",
    ...     origem="E-mail",
    ...     categoria="Suporte/Dúvidas/Outros",
    ...     equipe="Help-Desk - Aeroporto",
    ...     projeto="Operação Help Desk",
    ...     plaqueta="222222"
    ... )

    >>> # Exemplo com tipo inválido (retorna erro)
    >>> xml = await inserir_atendimento_avulso_infraestrutura(
    ...     data_inicio="2024-01-15 09:00:00",
    ...     data_fim="2024-01-15 17:00:00",
    ...     matricula_solicitante="123456",
    ...     descricao_atendimento="Teste",
    ...     codigo_analista=789,
    ...     tipo="Tipo Inexistente"  # Erro!
    ... )

    >>> # Exemplo com codigo_analista inválido (retorna erro)
    >>> xml = await inserir_atendimento_avulso_infraestrutura(
    ...     data_inicio="2024-01-15 09:00:00",
    ...     data_fim="2024-01-15 17:00:00",
    ...     matricula_solicitante="123456",
    ...     descricao_atendimento="Teste",
    ...     codigo_analista="0",  # Erro!
    ...     tipo="Suporte"
    ... )

Notes:
    - **DIFERENCIAÇÃO DE FUNÇÃO**: Esta função cria novos atendimentos avulso infraestrutura. Para editar, use editar_atendimento_avulso_infraestrutura
    - **VALIDAÇÃO OBRIGATÓRIA**: Campo codigo_analista deve ser "CURRENT_USER" ou um número válido maior que zero (não aceita valores vazios, "0" ou não-numéricos)
    - Esta função é específica para ÁREA INFRAESTRUTURA (área=2)
    - A função realiza validação case-insensitive de todos os campos (tipo, origem, categoria, equipe, projeto)
    - As datas são automaticamente convertidas usando converter_data_siga com manter_horas=True
    - Utiliza as constantes: TIPO_TO_NUMBER_ATENDIMENTO_AVULSO_INFRAESTRUTURA, ORIGEM_TO_NUMBER, CATEGORIA_TO_NUMBER, EQUIPE_INFRAESTRUTURA_TO_NUMBER, PROJETO_TO_NUMBER para mapear valores para códigos numéricos
    - Todos os parâmetros enviados são incluídos como atributos no XML de resposta
    - A API key é obtida automaticamente da variável de ambiente AVA_API_KEY
    - Em caso de falha na requisição HTTP, retorna erro interno formatado em XML
    - O resultado da API (1 = sucesso, outros valores = erro) é interpretado automaticamente
    - Campos opcionais como nomeSolicitante, centroCusto, etc. são enviados vazios por padrão
    - Esta função cria atendimentos avulsos independentes, não vinculados a nenhuma OS
"""
