{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Attributes\n",
    "> Relação dos campos contidos nas diferentes Inspeções do Fiscaliza com as instâncias de classe que os representam."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#|default_exp attrs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#| export\n",
    "from fiscaliza.datatypes import (\n",
    "    AtomicField,\n",
    "    SimpleField,\n",
    "    EncodedString,\n",
    "    FieldWithOptions,\n",
    "    Coordenadas,\n",
    "    GerarPlai,\n",
    ")\n",
    "from fiscaliza.constants import MUNICIPIOS, SERVICOS\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# | export\n",
    "SPECIAL_FIELDS = {\n",
    "    \"coordenadas_estacao\": Coordenadas(718, \"Coordenadas Estação\"),\n",
    "    \"coordenadas_geograficas\": Coordenadas(717, \"Coordenadas Geográficas\", True),\n",
    "    \"gerar_plai\": GerarPlai(426, \"Gerar PLAI?\"),\n",
    "    \"outras_fontes_interferentes\": EncodedString(  # NotImplemented\n",
    "        2076, \"Outras fontes interferentes:\", True\n",
    "    ),\n",
    "}\n",
    "\n",
    "FIELDS = {\n",
    "    \"status\": AtomicField(\"Situação\", \"status_id\", mandatory=False),\n",
    "    \"description\": AtomicField(\"Descrição\", \"description\"),\n",
    "    \"start_date\": AtomicField(\"Data de início\", \"start_date\"),\n",
    "    \"due_date\": AtomicField(\"Data limite\", \"due_date\"),\n",
    "    \"acao_de_risco_a_vida_criada\": FieldWithOptions(\n",
    "        154,\n",
    "        \"Ação de risco à vida criada?\",\n",
    "        options=[\"\", \"Não\", \"Sim\"],\n",
    "        mapping={\"Sim\": [\"acao_de_risco_a_vida\"]},\n",
    "    ),\n",
    "    \"acao_de_risco_a_vida\": FieldWithOptions(\n",
    "        155, \"Ação de risco à vida\", multiple=True, format_value=True, options=[]\n",
    "    ),\n",
    "    \"agrupamento\": SimpleField(213, \"Agrupamento:\"),\n",
    "    \"altura_do_sistema_irradiante\": SimpleField(131, \"Altura do sistema irradiante:\"),\n",
    "    \"area_do_pacp\": FieldWithOptions(\n",
    "        416,\n",
    "        \"Área do PACP:\",\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"1-Comércio\",\n",
    "            \"2-ISP\",\n",
    "            \"3-E-commerce\",\n",
    "            \"4-Aduana\",\n",
    "            \"5-Feiras e Eventos\",\n",
    "            \"6-Supervisão de Mercados\",\n",
    "        ],\n",
    "    ),\n",
    "    \"campo_eletrico__pico_vm\": SimpleField(195, \"Campo elétrico pico (V/m):\", True),\n",
    "    \"campo_eletrico_rms_vm\": SimpleField(194, \"Campo elétrico RMS (V/m):\", True),\n",
    "    \"cnpjcpf_da_entidade\": SimpleField(141, \"CNPJ/CPF da Entidade:\"),\n",
    "    \"coordenacao_responsavel\": FieldWithOptions(\n",
    "        178, \"Coordenação responsável:\", options=[\"\", \"FI\", \"FI1\", \"FI2\", \"FI3\"]\n",
    "    ),\n",
    "    \"coord_fi_plai\": FieldWithOptions(\n",
    "        426, \"Coordenação PLAI:\", options=[\"\", \"FI\", \"FI1\", \"FI2\", \"FI3\"]\n",
    "    ),\n",
    "    \"copiar_instrumento_da_reserva\": FieldWithOptions(\n",
    "        629, \"Copiar instrumento da reserva?\", options=[\"\", \"0\", \"1\"]\n",
    "    ),\n",
    "    \"documento_instaurador_do_pado\": SimpleField(134, \"Documento instaurador do PADO:\"),\n",
    "    \"endereco_da_inspecao\": SimpleField(142, \"Endereço da Inspeção:\", True),\n",
    "    \"entidade_com_cadastro_stel\": FieldWithOptions(\n",
    "        189,\n",
    "        \"Entidade com cadastro STEL?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Não\", \"Sim\"],\n",
    "        mapping={\n",
    "            \"Sim\": [\"entidade_da_inspecao\"],\n",
    "            \"Não\": [\"nome_da_entidade\", \"cnpjcpf_da_entidade\"],\n",
    "        },\n",
    "    ),\n",
    "    \"entidade_da_inspecao\": FieldWithOptions(\n",
    "        30, \"Entidade da Inspeção:\", multiple=True, format_value=True, options=[]\n",
    "    ),\n",
    "    \"entidade_outorgada\": FieldWithOptions(\n",
    "        138,\n",
    "        \"Entidade Outorgada?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"numero_da_estacao\"]},\n",
    "    ),\n",
    "    \"esta_em_operacao\": FieldWithOptions(\n",
    "        139, \"Está em operação?\", mandatory=True, options=[\"\", \"0\", \"1\"]\n",
    "    ),\n",
    "    \"fiscais\": FieldWithOptions(26, \"Fiscais:\", mandatory=True, multiple=True),\n",
    "    \"fiscal_responsavel\": FieldWithOptions(25, \"Fiscal responsável:\", mandatory=True),\n",
    "    \"foi_constatada_interferencia\": FieldWithOptions(\n",
    "        1967,\n",
    "        \"Foi constatada interferência?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\n",
    "            \"0\": [\"justificativa_da_improcedencia\"],\n",
    "            \"1\": [\n",
    "                \"interferencia_sanada\",\n",
    "                \"local_interf_confere_indicado\",\n",
    "                \"tipo_de_fonte_interferente\",\n",
    "                \"fonte_e_modelo\",\n",
    "                \"frequencia_mhz\",\n",
    "                \"potencia_de_operacao_w\",\n",
    "                \"homologada\",\n",
    "                \"ha_outras_fontes_interfer\",\n",
    "            ],\n",
    "        },\n",
    "    ),\n",
    "    \"fonte_e_modelo\": SimpleField(\n",
    "        2069,\n",
    "        \"Fonte e modelo:\",\n",
    "    ),\n",
    "    \"frequencia_mhz\": SimpleField(\n",
    "        2071,\n",
    "        \"Frequência (MHz):\",\n",
    "    ),\n",
    "    \"frequencia_inicial\": SimpleField(156, \"Frequência inicial:\", True, _dtype=\"float\"),\n",
    "    \"frequencia_final\": SimpleField(158, \"Frequência final:\", True, _dtype=\"float\"),\n",
    "    \"frequencias\": SimpleField(180, \"Frequência(s):\"),\n",
    "    \"gerar_plai\": FieldWithOptions(\n",
    "        426,\n",
    "        \"Gerar PLAI?\",\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"tipo_do_processo_plai\", \"coord_fi_plai\"]},\n",
    "    ),\n",
    "    \"gerar_relatorio\": FieldWithOptions(\n",
    "        541,\n",
    "        \"Gerar Relatório\",\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"html\"]},\n",
    "    ),\n",
    "    \"ha_outras_fontes_interfer\": FieldWithOptions(\n",
    "        2075,\n",
    "        \"Há outras fontes interferentes?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Não\", \"Sim\"],\n",
    "    ),\n",
    "    \"homologada\": FieldWithOptions(\n",
    "        2074,\n",
    "        \"Homologada?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Não\", \"Sim\", \"Indeterminado\"],\n",
    "    ),\n",
    "    \"horas_de_conclusao\": SimpleField(94, \"Horas de conclusão\", True, _dtype=\"float\"),\n",
    "    \"horas_de_deslocamento\": SimpleField(\n",
    "        92, \"Horas de deslocamento\", True, _dtype=\"float\"\n",
    "    ),\n",
    "    \"horas_de_execucao\": SimpleField(93, \"Horas de Execução\", True, _dtype=\"float\"),\n",
    "    \"horas_de_preparacao\": SimpleField(91, \"Horas de Preparação\", True, _dtype=\"float\"),\n",
    "    \"houve_interferencia\": FieldWithOptions(\n",
    "        149,\n",
    "        \"Houve interferência?\",\n",
    "        mandatory=True,\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"Não\",\n",
    "            \"Sim\",\n",
    "        ],\n",
    "        mapping={\"Sim\": [\"identificada_a_origem\"]},\n",
    "    ),\n",
    "    \"houve_obice\": FieldWithOptions(\n",
    "        136, \"Houve óbice?\", mandatory=True, options=[\"\", \"0\", \"1\"]\n",
    "    ),\n",
    "    \"html\": SimpleField(543, \"Html\", True),\n",
    "    \"identificada_a_origem\": FieldWithOptions(\n",
    "        162,\n",
    "        \"Identificada a origem?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"sanada_ou_mitigada\"]},\n",
    "    ),\n",
    "    \"identificacao_da_nao_outorgada\": SimpleField(\n",
    "        250, \"Identificação da Não Outorgada:\"\n",
    "    ),\n",
    "    \"instrumentos_utilizados\": FieldWithOptions(\n",
    "        599, \"Instrumentos Utilizados\", True, True, options=[]\n",
    "    ),\n",
    "    \"interferencia_sanada\": FieldWithOptions(\n",
    "        1969,\n",
    "        \"Interferência sanada?\",\n",
    "        mandatory=True,\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"Sim, confirmado pelo denunciante\",\n",
    "            \"Sim, sem confirmação pelo denunciante\",\n",
    "            \"Não\",\n",
    "        ],\n",
    "        mapping={\n",
    "            \"Sim, sem confirmação pelo denunciante\": [\"justificativa_nao_confirmacao\"],\n",
    "            \"Não\": [\"justificativa_nao_resolucao\"],\n",
    "        },\n",
    "    ),\n",
    "    \"irregularidade\": FieldWithOptions(\n",
    "        73,\n",
    "        \"Irregularidade:\",\n",
    "        multiple=True,\n",
    "        options=[],  # Preechido dinamicamente dentro da classe Issue\n",
    "        format_value=True,\n",
    "    ),\n",
    "    \"justificativa_da_improcedencia\": FieldWithOptions(\n",
    "        1968,\n",
    "        \"Justificativa da Improcedência:\",\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"Reclamante informou que interferência cessou\",\n",
    "            \"Dados obtidos indicam que interferência não procede\",\n",
    "            \"Não foi constatada portadora interferente em campo\",\n",
    "        ],\n",
    "    ),\n",
    "    \"justificativa_nao_confirmacao\": SimpleField(\n",
    "        1970,\n",
    "        \"Justificativa não confirmação:\",\n",
    "        mandatory=True,\n",
    "    ),\n",
    "    \"justificativa_nao_resolucao\": SimpleField(\n",
    "        1971, \"Justificativa não resolução:\", mandatory=True\n",
    "    ),\n",
    "    # \"lai_vinculadas\": SimpleField(481, \"LAI vinculadas\"),\n",
    "    \"latitude_coordenadas\": SimpleField(170, \"Latitude (º):\", True),\n",
    "    \"latitude_da_estacao\": SimpleField(191, \"Latitude da estação (º):\", True),\n",
    "    \"local_interf_confere_indicado\": FieldWithOptions(\n",
    "        1972,\n",
    "        \"Local interferência confere indicado?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Sim\", \"Não\", \"Parcialmente\", \"Não se aplica\"],\n",
    "    ),\n",
    "    \"longitude_coordenadas\": SimpleField(171, \"Longitude (º):\", True),\n",
    "    \"longitude_da_estacao\": SimpleField(192, \"Longitude da estação (º):\", True),\n",
    "    \"motivo_de_lai\": FieldWithOptions(\n",
    "        164,\n",
    "        \"Motivo de LAI:\",\n",
    "        mandatory=True,\n",
    "        multiple=True,\n",
    "        options=[\n",
    "            \"Risco à vida\",\n",
    "            \"Clandestinidade\",\n",
    "            \"Interferência prejudicial\",\n",
    "            \"Uso de produto não certificado\",\n",
    "            \"Garantir a segurança (exposição a campos eletromagnéticos)\",\n",
    "            \"Necessidade de assegurar o planejamento, o gerenciamento e a coordenação do uso de espectro de radiofrequências (justificar)\",\n",
    "        ],\n",
    "    ),\n",
    "    \"numero_da_estacao\": SimpleField(137, \"Número da estação:\", True),\n",
    "    \"numero_do_pai\": SimpleField(211, \"Nº SEI PAI:\"),\n",
    "    \"no_de_homologacao\": SimpleField(161, \"Nº de Homologação:\"),\n",
    "    \"no_do_lacre\": SimpleField(165, \"Nº do lacre:\", True),\n",
    "    \"no_pcdp\": SimpleField(112, \"Nº PCDP:\"),\n",
    "    \"no_sav\": SimpleField(111, \"Nº SAV:\"),\n",
    "    \"no_sei_do_aviso_lai\": EncodedString(427, \"Nº SEI Referendo (Aviso LAI):\", True),\n",
    "    \"no_sei_do_oficio_ao_mctic\": EncodedString(428, \"Nº SEI do Ofício ao MCTIC:\"),\n",
    "    \"no_sei_do_plaiguarda\": EncodedString(426, \"Nº SEI PLAI:\"),\n",
    "    \"no_sei_processo_fiscalizacao\": EncodedString(422, \"Nº SEI PFIS:\"),\n",
    "    \"no_sei_relatorio_de_atividades\": SimpleField(544, \"Nº SEI Relatório:\"),\n",
    "    \"nome_da_entidade\": SimpleField(140, \"Nome da Entidade:\", True),\n",
    "    \"observacao_tecnica_amostral\": SimpleField(\n",
    "        693, \"Observação (técnica amostral):\", True\n",
    "    ),\n",
    "    \"observacoes\": SimpleField(1973, \"Observações:\"),\n",
    "    \"pai_instaurado_pela_anatel\": FieldWithOptions(\n",
    "        160,\n",
    "        \"PAI instaurado pela Anatel?\",\n",
    "        True,\n",
    "        options=[\"\", \"Não\", \"Sim\"],\n",
    "        mapping={\"Sim\": [\"numero_do_pai\"]},\n",
    "    ),\n",
    "    \"potencia_de_operacao_w\": SimpleField(2072, \"Potência de Operação (W):\", True),\n",
    "    \"potencia_medida\": SimpleField(81, \"Potência:\"),\n",
    "    \"precisa_reservar_instrumentos\": FieldWithOptions(\n",
    "        596,\n",
    "        \"Precisa reservar instrumentos?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"reserva_de_instrumentos\"]},\n",
    "    ),\n",
    "    \"procedimentos\": FieldWithOptions(\n",
    "        71,\n",
    "        \"Procedimentos:\",\n",
    "        mandatory=True,\n",
    "        multiple=True,\n",
    "        options=[\n",
    "            \"Nenhum\",\n",
    "            \"Lacração\",\n",
    "            \"Apreensão\",\n",
    "            \"Interrupção\",\n",
    "            \"Não Cadastrado\",\n",
    "            \"Notificado\",\n",
    "            \"A Notificar\",\n",
    "            \"Liberação/Desinterrupção\",\n",
    "            \"Orientação ao Usuário\",\n",
    "            \"Comunicado\",\n",
    "            \"Deslacrado\",\n",
    "            \"Vistoriado\",\n",
    "            \"Emissão Termo Violação de Lacre\",\n",
    "            \"Apoio a busca e apreensão\",\n",
    "            \"Investigação/Pesquisa\",\n",
    "            \"Não Lacrado - Impedimento\",\n",
    "            \"Não Lacrado - Amparo Judicial\",\n",
    "            \"Não Lacrado - Responsável Ausente\",\n",
    "            \"Não Lacrado - Local Fechado\",\n",
    "            \"Constatação Violação Lacre/Relacrado\",\n",
    "            \"Constatação Violação Lacre/Impedimento\",\n",
    "            \"Notícia Crime\",\n",
    "            \"Monitorado alterado\",\n",
    "            \"Constatação Encerramento - Informe\",\n",
    "            \"Levantamento de Dados\",\n",
    "            \"Análise/coleta de Dados\",\n",
    "            \"Monitorado\",\n",
    "            \"Não Lacrado - Desativado\",\n",
    "            \"Devolução de Produto(s)\",\n",
    "            \"Outros\",\n",
    "        ],\n",
    "        mapping={\n",
    "            \"Lacração\": [\n",
    "                \"no_do_lacre\",\n",
    "                \"motivo_de_lai\",\n",
    "                \"no_sei_do_aviso_lai\",\n",
    "                # \"lai_vinculadas\",\n",
    "                \"no_sei_do_plaiguarda\",\n",
    "                \"gerar_plai\",\n",
    "            ],\n",
    "            \"Apreensão\": [\n",
    "                \"motivo_de_lai\",\n",
    "                \"no_sei_do_aviso_lai\",\n",
    "                # \"lai_vinculadas\",\n",
    "                \"no_sei_do_plaiguarda\",\n",
    "                \"gerar_plai\",\n",
    "            ],\n",
    "            \"Interrupção\": [\n",
    "                \"motivo_de_lai\",\n",
    "                \"no_sei_do_aviso_lai\",\n",
    "                # \"lai_vinculadas\",\n",
    "                \"no_sei_do_plaiguarda\",\n",
    "                \"gerar_plai\",\n",
    "            ],\n",
    "        },\n",
    "    ),\n",
    "    \"qnt_produt_lacradosapreend\": SimpleField(\n",
    "        143, \"Qtd. produtos lacrados ou apreendidos:\", True, _dtype=\"int\"\n",
    "    ),\n",
    "    \"qtd_de_emissoes\": SimpleField(69, \"Qtd. Emissões:\", _dtype=\"int\"),\n",
    "    \"qtd_identificadas\": SimpleField(731, \"Qtd. Identificadas:\", _dtype=\"int\"),\n",
    "    \"qtd_licenciadas\": SimpleField(730, \"Qtd. Licenciadas:\", _dtype=\"int\"),\n",
    "    \"relatorio_de_atividades\": EncodedString(544, \"Nº SEI Relatório:\", _dtype=\"int\"),\n",
    "    \"reserva_de_instrumentos\": SimpleField(\n",
    "        597, \"Reserva de instrumentos:\", True, True, True\n",
    "    ),\n",
    "    \"sanada_ou_mitigada\": FieldWithOptions(\n",
    "        163, \"Sanada ou mitigada?\", mandatory=True, options=[\"\", \"0\", \"1\"]\n",
    "    ),\n",
    "    \"servicos_da_inspecao\": FieldWithOptions(\n",
    "        57,\n",
    "        \"Serviços da Inspeção:\",\n",
    "        mandatory=True,\n",
    "        multiple=True,\n",
    "        options=list(SERVICOS.values()),\n",
    "        format_value=True,\n",
    "    ),\n",
    "    \"situacao_constatada\": FieldWithOptions(\n",
    "        62,\n",
    "        \"Situação constatada:\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Regular\", \"Irregular\", \"Inconclusivo\", \"Não analisado\"],\n",
    "    ),\n",
    "    \"situacao_de_risco_a_vida\": FieldWithOptions(\n",
    "        150,\n",
    "        \"Situação de risco à vida?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Não\", \"Sim\"],\n",
    "    ),\n",
    "    \"tipificacao_da_infracao\": FieldWithOptions(\n",
    "        148,\n",
    "        \"Tipificação da infração:\",\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"art. 163 da LGT – uso de RF\",\n",
    "            \"art.  131 da LGT – exploração de serviço\",\n",
    "            \"Outro\",\n",
    "        ],\n",
    "    ),\n",
    "    \"tipo_de_fonte_interferente\": FieldWithOptions(\n",
    "        2068,\n",
    "        \"Tipo de fonte interferente:\",\n",
    "        mandatory=True,\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"BSR\",\n",
    "            \"Estação de Radiodifusão\",\n",
    "            \"Estação de Telecomunicações\",\n",
    "            \"Estação Clandestina\",\n",
    "            \"Estação Estrangeira\",\n",
    "            \"Reforçador de Celular\",\n",
    "            \"Câmera sem fio\",\n",
    "            \"Microfone sem fio\",\n",
    "            \"Equipamento de Radiação Não Intencional\",\n",
    "            \"Vazamento de TV a Cabo\",\n",
    "            \"Rede Elétrica\",\n",
    "            \"Outros\",\n",
    "        ],\n",
    "    ),\n",
    "    \"tipo_de_inspecao\": FieldWithOptions(\n",
    "        2,\n",
    "        \"Tipo de inspeção:\",\n",
    "        mandatory=True,\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"Bloqueio Administrativo\",\n",
    "            \"Certificação\",\n",
    "            \"Medição de CEMRF (RNI)\",\n",
    "            \"Outorga - Aspectos não Técnicos\",\n",
    "            \"Outorga - Aspectos Técnicos\",\n",
    "            \"Uso do Espectro - Interferência\",\n",
    "            \"Uso do Espectro - Monitoração\",\n",
    "            \"Uso do Espectro - Não Outorgado\",\n",
    "        ],\n",
    "        format_value=True,\n",
    "        mapping={\n",
    "            \"Bloqueio Administrativo\": [\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"utilizou_algum_instrumento\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "            \"Certificação\": [\n",
    "                \"area_do_pacp\",\n",
    "                \"documento_instaurador_do_pado\",\n",
    "                \"endereco_da_inspecao\",\n",
    "                \"entidade_com_cadastro_stel\",\n",
    "                \"houve_obice\",\n",
    "                \"irregularidade\",\n",
    "                \"latitude_coordenadas\",\n",
    "                \"longitude_coordenadas\",\n",
    "                \"no_sei_relatorio_de_atividades\",\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"qnt_produt_lacradosapreend\",\n",
    "                \"situacao_constatada\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "            \"Medição de CEMRF (RNI)\": [\n",
    "                \"campo_eletrico__pico_vm\",\n",
    "                \"campo_eletrico_rms_vm\",\n",
    "                \"entidade_da_inspecao\",\n",
    "                \"entidade_outorgada\",\n",
    "                \"frequencia_final\",\n",
    "                \"frequencia_inicial\",\n",
    "                \"latitude_coordenadas\",\n",
    "                \"latitude_da_estacao\",\n",
    "                \"longitude_coordenadas\",\n",
    "                \"longitude_da_estacao\",\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"tipo_de_medicao\",\n",
    "                \"unidade_da_frequencia_final\",\n",
    "                \"unidade_da_frequencia_inicial\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "            \"Outorga - Aspectos não Técnicos\": [\n",
    "                \"entidade_da_inspecao\",\n",
    "                \"irregularidade\",\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"pai_instaurado_pela_anatel\",\n",
    "                \"situacao_constatada\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "            \"Outorga - Aspectos Técnicos\": [\n",
    "                \"altura_do_sistema_irradiante\",\n",
    "                \"documento_instaurador_do_pado\",\n",
    "                \"entidade_da_inspecao\",\n",
    "                \"entidade_outorgada\",\n",
    "                \"esta_em_operacao\",\n",
    "                \"frequencias\",\n",
    "                \"houve_interferencia\",\n",
    "                \"houve_obice\",\n",
    "                \"irregularidade\",\n",
    "                \"latitude_coordenadas\",\n",
    "                \"longitude_coordenadas\",\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"potencia_medida\",\n",
    "                \"situacao_constatada\",\n",
    "                \"situacao_de_risco_a_vida\",\n",
    "                \"unidade_de_frequencia\",\n",
    "                \"unidade_de_potencia\",\n",
    "                \"uso_de_produto_homologado\",\n",
    "                \"utilizou_apoio_policial\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "            \"Uso do Espectro - Interferência\": [\n",
    "                \"entidade_da_inspecao\",\n",
    "                \"foi_constatada_interferencia\",\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"observacoes\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "            \"Uso do Espectro - Monitoração\": [\n",
    "                \"acao_de_risco_a_vida_criada\",\n",
    "                \"entidade_da_inspecao\",\n",
    "                \"frequencia_final\",\n",
    "                \"frequencia_inicial\",\n",
    "                \"latitude_coordenadas\",\n",
    "                \"longitude_coordenadas\",\n",
    "                \"no_sei_relatorio_de_atividades\",\n",
    "                \"qtd_de_emissoes\",\n",
    "                \"qtd_identificadas\",\n",
    "                \"qtd_licenciadas\",\n",
    "                \"unidade_da_frequencia_final\",\n",
    "                \"unidade_da_frequencia_inicial\",\n",
    "            ],\n",
    "            \"Uso do Espectro - Não Outorgado\": [\n",
    "                \"entidade_com_cadastro_stel\",\n",
    "                \"frequencias\",\n",
    "                \"houve_interferencia\",\n",
    "                \"identificacao_da_nao_outorgada\",\n",
    "                \"irregularidade\",\n",
    "                \"latitude_coordenadas\",\n",
    "                \"longitude_coordenadas\",\n",
    "                \"observacao_tecnica_amostral\",\n",
    "                \"potencia_medida\",\n",
    "                \"qnt_produt_lacradosapreend\",\n",
    "                \"situacao_constatada\",\n",
    "                \"situacao_de_risco_a_vida\",\n",
    "                \"tipificacao_da_infracao\",\n",
    "                \"unidade_de_frequencia\",\n",
    "                \"unidade_de_potencia\",\n",
    "                \"uso_de_produto_homologado\",\n",
    "                \"utilizou_apoio_policial\",\n",
    "                \"utilizou_tecnicas_amostrais\",\n",
    "            ],\n",
    "        },\n",
    "    ),\n",
    "    \"tipo_de_medicao\": FieldWithOptions(\n",
    "        193, \"Tipo de medição:\", options=[\"\", \"Móvel\", \"Fixa\", \"Portátil\"]\n",
    "    ),\n",
    "    \"tipo_do_processo_plai\": FieldWithOptions(\n",
    "        426,\n",
    "        \"Tipo do PLAI:\",\n",
    "        options=[\n",
    "            \"\",\n",
    "            \"Gestão da Fiscalização: Lacração, Apreensão e Interrupção\",\n",
    "            \"Gestão da Fiscalização: Processo de Guarda\",\n",
    "        ],\n",
    "    ),\n",
    "    \"ufmunicipio\": FieldWithOptions(\n",
    "        31,\n",
    "        \"UF/Município:\",\n",
    "        mandatory=True,\n",
    "        multiple=True,\n",
    "        options=MUNICIPIOS,\n",
    "        format_value=True,\n",
    "    ),\n",
    "    \"unidade_da_frequencia_final\": FieldWithOptions(\n",
    "        159,\n",
    "        \"Unidade (Frequência final):\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Hz\", \"kHz\", \"MHz\", \"GHz\", \"THz\"],\n",
    "    ),\n",
    "    \"unidade_da_frequencia_inicial\": FieldWithOptions(\n",
    "        157,\n",
    "        \"Unidade (Frequência inicial):\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Hz\", \"kHz\", \"MHz\", \"GHz\", \"THz\"],\n",
    "    ),\n",
    "    \"unidade_de_frequencia\": FieldWithOptions(\n",
    "        84,\n",
    "        \"Unidade (Frequência):\",\n",
    "        mandatory=False,\n",
    "        options=[\"\", \"Hz\", \"kHz\", \"MHz\", \"GHz\", \"THz\"],\n",
    "    ),\n",
    "    \"unidade_de_potencia\": FieldWithOptions(\n",
    "        82,\n",
    "        \"Unidade (Potência):\",\n",
    "        mandatory=False,\n",
    "        options=[\"\", \"mW\", \"W\", \"kW\", \"MW\", \"TW\", \"dBW\", \"dBm\"],\n",
    "    ),\n",
    "    \"uso_de_produto_homologado\": FieldWithOptions(\n",
    "        132,\n",
    "        \"Uso de produto homologado?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"no_de_homologacao\"]},\n",
    "    ),\n",
    "    \"utilizou_algum_instrumento\": FieldWithOptions(\n",
    "        598,\n",
    "        \"Utilizou algum instrumento?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"0\", \"1\"],\n",
    "        mapping={\"1\": [\"instrumentos_utilizados\", \"copiar_instrumento_da_reserva\"]},\n",
    "    ),\n",
    "    \"utilizou_apoio_policial\": FieldWithOptions(\n",
    "        75,\n",
    "        \"Utilizou apoio policial?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Nenhum\", \"Polícia Civil\", \"Polícia Militar\", \"Polícia Federal\"],\n",
    "    ),\n",
    "    \"utilizou_tecnicas_amostrais\": FieldWithOptions(\n",
    "        692,\n",
    "        \"Utilizou técnicas amostrais?\",\n",
    "        mandatory=True,\n",
    "        options=[\"\", \"Usou técnicas amostrais\", \"Não usou técnicas amostrais\"],\n",
    "    ),\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# | hide\n",
    "import nbdev\n",
    "\n",
    "nbdev.nbdev_export()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "python3",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
