{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "---\n",
    "output-file: index.html\n",
    "title: API para relato no Fiscaliza da Anatel\n",
    "\n",
    "---\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "import random\n",
    "from random import randint\n",
    "from dotenv import load_dotenv\n",
    "from fiscaliza.main import Fiscaliza\n",
    "from fiscaliza.constants import MUNICIPIOS, SERVICOS\n",
    "from fiscaliza.attrs import FIELDS\n",
    "load_dotenv(override=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Autenticação e Conexão com o servidor do Redmine\n",
    "A classe `Fiscaliza` é somente para efetuar a conexão e autenticação com o servidor do Redmine. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "language": "python"
   },
   "outputs": [],
   "source": [
    "issue_id = \"124182\"\n",
    "fiscaliza = Fiscaliza(os.environ[\"USERNAME\"], os.environ[\"PASSWORD\"], teste=True)\n",
    "issue = fiscaliza.get_issue(issue_id)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Conexão com dada inspeção \n",
    "O método `get_issue` instancia e retorna um objeto do tipo `Issue`, este que encapsula a funcionalidade principal de resgate de informações, validação e formatação de informações e atualização de inspeção.\n",
    "O mesmo objeto pode ser instanciado diretamente passando o `client` do objeto `Fiscaliza` após autenticado e o `id` da inspeção.\n",
    "```\n",
    "issue = Issue(fiscaliza.client, issue_id)\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Informações da Inspeção\n",
    "Todas as informações principais da Inspeção estão disponíveis através do atributo `attrs`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'acao': {'type': 'acao_de_inspecao',\n",
       "  'status': 'Em andamento',\n",
       "  'name': 'ACAO_GR08_2024_0014',\n",
       "  'description': '[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n'},\n",
       " 'agrupamento': '',\n",
       " 'allowed_statuses': '',\n",
       " 'anexos': ['https://sistemasnethm/fiscaliza/attachments/download/9190/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9191/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9192/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9196/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9197/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9202/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9207/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9208/Info.json'],\n",
       " 'ano_de_execucao': '2024',\n",
       " 'app_fiscaliza': '0',\n",
       " 'area_do_pacp': '4-Aduana',\n",
       " 'assigned_to': 'Eric Magalhães Delgado',\n",
       " 'atualizacao': 'Atualizada por Ronaldo da Silva Alves Batista em 27/07/2024 às 23:37:59',\n",
       " 'author': 'Eric Magalhães Delgado',\n",
       " 'changesets': '',\n",
       " 'children': '',\n",
       " 'classe_da_inspecao': 'Técnica',\n",
       " 'closed_on': '',\n",
       " 'cnpjcpf_da_entidade': '27865757000102',\n",
       " 'coordenacao_responsavel': 'FI2',\n",
       " 'created_on': '2024-04-18T12:38:03Z',\n",
       " 'dadospacp': '',\n",
       " 'data_de_inicio_efetivo': '2024-07-25',\n",
       " 'description': '[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n',\n",
       " 'documento_instaurador_do_pado': '0201235\\n0201239\\n0201237',\n",
       " 'done_ratio': 0,\n",
       " 'due_date': '2024-05-30',\n",
       " 'endereco_da_inspecao': 'Rua Machado de Assis, 27 - Morro Grande, Rio de Janeiro - RJ',\n",
       " 'entidade_com_cadastro_stel': 'Não',\n",
       " 'estimated_hours': '',\n",
       " 'horas_de_conclusao': '6',\n",
       " 'horas_de_deslocamento': '2',\n",
       " 'horas_de_execucao': '38',\n",
       " 'horas_de_preparacao': '3',\n",
       " 'houve_obice': '1',\n",
       " 'id': 124182,\n",
       " 'identificada_a_origem': '1',\n",
       " 'irregularidade': [],\n",
       " 'is_private': False,\n",
       " 'latitude_coordenadas': '-16.0',\n",
       " 'longitude_coordenadas': '-45.0',\n",
       " 'no_fiscaliza_issue': {'numero': '124182',\n",
       "  'link_acesso': 'https://sistemasnethm/fiscaliza/issues/124182'},\n",
       " 'no_pcdp': '',\n",
       " 'no_sav': 'Teste de Quebra\\n de linha',\n",
       " 'no_sei_do_oficio_ao_mctic': '',\n",
       " 'no_sei_processo_fiscalizacao': \"{'numero': '53554.000005/2024-18', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134'}\",\n",
       " 'no_sei_relatorio_de_atividades': \"{'numero': '0207709', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134&id_documento=1984091'}\",\n",
       " 'nome_da_entidade': 'Globo S/A',\n",
       " 'observacao_tecnica_amostral': 'Simulação com o HTZ',\n",
       " 'precisa_reservar_instrumentos': '0',\n",
       " 'priority': 'Normal',\n",
       " 'procedimentos': ['Monitorado alterado', 'Não Lacrado - Impedimento'],\n",
       " 'project': 'GR08',\n",
       " 'qnt_produt_lacradosapreend': '0',\n",
       " 'sanada_ou_mitigada': '',\n",
       " 'servicos_da_inspecao': ['000 - Não Aplicável',\n",
       "  '167 - COLETIVO - ESPECIAL DE TELEVISAO POR ASSINATURA'],\n",
       " 'situacao_constatada': 'Irregular',\n",
       " 'spent_hours': 0.0,\n",
       " 'start_date': '2024-03-01',\n",
       " 'status': 'Relatando',\n",
       " 'subject': 'INSP_GR08_2024_0147',\n",
       " 'subtema': ['Radiomonitoração Terrestre'],\n",
       " 'tema': ['Uso do Espectro'],\n",
       " 'time_entries': '',\n",
       " 'tipo_de_inspecao': 'Certificação',\n",
       " 'total_de_horas': '49.0',\n",
       " 'total_estimated_hours': '',\n",
       " 'total_spent_hours': 0.0,\n",
       " 'tracker': 'Atividade de Inspeção',\n",
       " 'ufmunicipio': ['PR/Pérola', 'PR/Santa Fé'],\n",
       " 'updated_on': '2024-07-28T02:37:59Z',\n",
       " 'utilizou_algum_instrumento': '0',\n",
       " 'utilizou_tecnicas_amostrais': 'Não usou técnicas amostrais',\n",
       " 'watchers': ''}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.attrs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "O atributo acima retorna um dicionário com atributos atuais da Inspeção no Fiscaliza. Existem campos editáveis através da API ou da interface Web e outros meramente informativos, além de alguns campos presentes no `Redmine` mas sem uso na instância Fiscaliza da Anatel. Um exemplo desses é o atributo `children`, sempre vazio."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Campos editáveis\n",
    "Os dados que são editáveis, tanto pela API quanto pela interface web aparecem em `minúsculo` no dicionário. Para estes dados temos um outro método mais informativo:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'agrupamento': (value: ),\n",
       " 'area_do_pacp': (value: 4-Aduana), <options>,\n",
       " 'cnpjcpf_da_entidade': (value: 27865757000102),\n",
       " 'coordenacao_responsavel': (value: FI2), <options>,\n",
       " 'description': (value: [PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\n",
       " ) | <mandatory>,\n",
       " 'documento_instaurador_do_pado': (value: 0201235\n",
       " 0201239\n",
       " 0201237),\n",
       " 'due_date': (value: 2024-05-30) | <mandatory>,\n",
       " 'endereco_da_inspecao': (value: Rua Machado de Assis, 27 - Morro Grande, Rio de Janeiro - RJ) | <mandatory>,\n",
       " 'entidade_com_cadastro_stel': (value: Não) | <mandatory>, <options>, conditional,\n",
       " 'fiscais': (value: ['Eric Magalhães Delgado', 'Ronaldo da Silva Alves Batista']) | <mandatory>, <multiple>, <options>,\n",
       " 'fiscal_responsavel': (value: Eric Magalhães Delgado) | <mandatory>, <options>,\n",
       " 'horas_de_conclusao': (value: 6) | <mandatory>,\n",
       " 'horas_de_deslocamento': (value: 2) | <mandatory>,\n",
       " 'horas_de_execucao': (value: 38) | <mandatory>,\n",
       " 'horas_de_preparacao': (value: 3) | <mandatory>,\n",
       " 'houve_obice': (value: 1) | <mandatory>, <options>,\n",
       " 'identificada_a_origem': (value: 1) | <mandatory>, <options>, conditional,\n",
       " 'irregularidade': (value: []), <multiple>, <options>,\n",
       " 'latitude_coordenadas': (value: -16.0) | <mandatory>,\n",
       " 'longitude_coordenadas': (value: -45.0) | <mandatory>,\n",
       " 'no_pcdp': (value: ),\n",
       " 'no_sav': (value: Teste de Quebra\n",
       "  de linha),\n",
       " 'no_sei_do_oficio_ao_mctic': (value: ),\n",
       " 'no_sei_processo_fiscalizacao': (value: {'numero': '53554.000005/2024-18', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134'}),\n",
       " 'no_sei_relatorio_de_atividades': (value: {'numero': '0207709', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134&id_documento=1984091'}),\n",
       " 'nome_da_entidade': (value: Globo S/A) | <mandatory>,\n",
       " 'observacao_tecnica_amostral': (value: Simulação com o HTZ) | <mandatory>,\n",
       " 'precisa_reservar_instrumentos': (value: 0) | <mandatory>, <options>, conditional,\n",
       " 'procedimentos': (value: ['Monitorado alterado', 'Não Lacrado - Impedimento']) | <mandatory>, <multiple>, <options>, conditional,\n",
       " 'qnt_produt_lacradosapreend': (value: 0) | <mandatory>,\n",
       " 'sanada_ou_mitigada': (value: ) | <mandatory>, <options>,\n",
       " 'servicos_da_inspecao': (value: ['000 - Não Aplicável', '167 - COLETIVO - ESPECIAL DE TELEVISAO POR ASSINATURA']) | <mandatory>, <multiple>, <options>,\n",
       " 'situacao_constatada': (value: Irregular) | <mandatory>, <options>,\n",
       " 'start_date': (value: 2024-03-01) | <mandatory>,\n",
       " 'status': (value: Relatando),\n",
       " 'tipo_de_inspecao': (value: Certificação) | <mandatory>, <options>, conditional,\n",
       " 'ufmunicipio': (value: ['PR/Pérola', 'PR/Santa Fé']) | <mandatory>, <multiple>, <options>,\n",
       " 'utilizou_tecnicas_amostrais': (value: Não usou técnicas amostrais) | <mandatory>, <options>}"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.editable_fields"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Nesse caso as chaves são os nomes dos campos e os valores são os objetos que modelam o campo. Ao mostrar ou imprimir o dicionário, como mostrado acima, é impresso o valor atual do campo entre parênteses.\n",
    "```\n",
    "'tipo_de_inspecao': (value: Uso do Espectro - Não Outorgado) | <mandatory>, <options>, conditional\n",
    "```\n",
    "Separado pela barra vertical são mostrados alguns atributos do campo:\n",
    "\n",
    "  - `<mandatory>` Atributo booleano indicando se o campo é obrigatório;\n",
    "  - `<multiple>` Atributo booleano. `False`: Campo de valor único. `True` Campo aceita mais de um valor e por conseguinte deve ser fornecido uma lista em vez de um valor atômico ( `int`, `float`, `str` );\n",
    "  - `<options>` Atributo do tipo lista. Quando presente sinaliza que o campo é restrito e só aceita  valores pré-definidos;\n",
    "  - `conditional` Esse não é um atributo, somente um sinalizador indicando que o campo é condicional e para dado valor preenchido neste campo, ficam disponíveis outros campos, estes podem ser obrigatórios e inclusive condicionais."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "O valor em si do campo é guardado no atributo `value`, acessado através da notação de ponto "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Certificação'"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.editable_fields['tipo_de_inspecao'].value"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Campos Obrigatórios e Condicionais"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Os dois métodos a seguir filtram, dentre os campos editáveis, os campos obrigatório e condicionais:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'description': (value: [PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\n",
       " ) | <mandatory>,\n",
       " 'due_date': (value: 2024-05-30) | <mandatory>,\n",
       " 'endereco_da_inspecao': (value: Rua Machado de Assis, 27 - Morro Grande, Rio de Janeiro - RJ) | <mandatory>,\n",
       " 'entidade_com_cadastro_stel': (value: Não) | <mandatory>, <options>, conditional,\n",
       " 'fiscais': (value: ['Eric Magalhães Delgado', 'Ronaldo da Silva Alves Batista']) | <mandatory>, <multiple>, <options>,\n",
       " 'fiscal_responsavel': (value: Eric Magalhães Delgado) | <mandatory>, <options>,\n",
       " 'horas_de_conclusao': (value: 6) | <mandatory>,\n",
       " 'horas_de_deslocamento': (value: 2) | <mandatory>,\n",
       " 'horas_de_execucao': (value: 38) | <mandatory>,\n",
       " 'horas_de_preparacao': (value: 3) | <mandatory>,\n",
       " 'houve_obice': (value: 1) | <mandatory>, <options>,\n",
       " 'identificada_a_origem': (value: 1) | <mandatory>, <options>, conditional,\n",
       " 'latitude_coordenadas': (value: -16.0) | <mandatory>,\n",
       " 'longitude_coordenadas': (value: -45.0) | <mandatory>,\n",
       " 'nome_da_entidade': (value: Globo S/A) | <mandatory>,\n",
       " 'observacao_tecnica_amostral': (value: Simulação com o HTZ) | <mandatory>,\n",
       " 'precisa_reservar_instrumentos': (value: 0) | <mandatory>, <options>, conditional,\n",
       " 'procedimentos': (value: ['Monitorado alterado', 'Não Lacrado - Impedimento']) | <mandatory>, <multiple>, <options>, conditional,\n",
       " 'qnt_produt_lacradosapreend': (value: 0) | <mandatory>,\n",
       " 'sanada_ou_mitigada': (value: ) | <mandatory>, <options>,\n",
       " 'servicos_da_inspecao': (value: ['000 - Não Aplicável', '167 - COLETIVO - ESPECIAL DE TELEVISAO POR ASSINATURA']) | <mandatory>, <multiple>, <options>,\n",
       " 'situacao_constatada': (value: Irregular) | <mandatory>, <options>,\n",
       " 'start_date': (value: 2024-03-01) | <mandatory>,\n",
       " 'tipo_de_inspecao': (value: Certificação) | <mandatory>, <options>, conditional,\n",
       " 'ufmunicipio': (value: ['PR/Pérola', 'PR/Santa Fé']) | <mandatory>, <multiple>, <options>,\n",
       " 'utilizou_tecnicas_amostrais': (value: Não usou técnicas amostrais) | <mandatory>, <options>}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.mandatory_fields()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'entidade_com_cadastro_stel': (value: Não) | <mandatory>, <options>, conditional,\n",
       " 'identificada_a_origem': (value: 1) | <mandatory>, <options>, conditional,\n",
       " 'precisa_reservar_instrumentos': (value: 0) | <mandatory>, <options>, conditional,\n",
       " 'procedimentos': (value: ['Monitorado alterado', 'Não Lacrado - Impedimento']) | <mandatory>, <multiple>, <options>, conditional,\n",
       " 'tipo_de_inspecao': (value: Certificação) | <mandatory>, <options>, conditional}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.conditional_fields()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> O conjunto de valores para os campos com opções pré-definidas estão relacionados no atributo `.options`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['',\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']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.editable_fields['tipo_de_inspecao'].options"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['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']"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.editable_fields['procedimentos'].options"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Atualizando os campos editáveis da Inspeção\n",
    "Dada a existência de campos condicionais, para obtermos todos os campos editáveis para dado tipo de inspeção, é preciso fornecer um dicionário de dados para que os campos sejam atualizados de acordo com os valores fornecidos para os campos condicionais."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "language": "python"
   },
   "outputs": [],
   "source": [
    "dados = {\n",
    "    \"tipo_de_inspecao\": \"Certificação\",\n",
    "    \"precisa_reservar_instrumentos\": \"0\",\n",
    "    \"utilizou_algum_instrumento\": \"0\",\n",
    "    \"procedimentos\": \"Lacração\",\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A atualização dos campos é feita passando o dicionário para o método `update_fields`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "language": "python"
   },
   "outputs": [],
   "source": [
    "issue.update_fields(dados)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Depois de atualizado os campos com o método acima, checamos novamente o atributo `editable_fields`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'agrupamento': (value: ),\n",
       " 'area_do_pacp': (value: 4-Aduana), <options>,\n",
       " 'cnpjcpf_da_entidade': (value: 27865757000102),\n",
       " 'coordenacao_responsavel': (value: FI2), <options>,\n",
       " 'description': (value: [PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\n",
       " ) | <mandatory>,\n",
       " 'documento_instaurador_do_pado': (value: 0201235\n",
       " 0201239\n",
       " 0201237),\n",
       " 'due_date': (value: 2024-05-30) | <mandatory>,\n",
       " 'endereco_da_inspecao': (value: Rua Machado de Assis, 27 - Morro Grande, Rio de Janeiro - RJ) | <mandatory>,\n",
       " 'entidade_com_cadastro_stel': (value: Não) | <mandatory>, <options>, conditional,\n",
       " 'fiscais': (value: ['Eric Magalhães Delgado', 'Ronaldo da Silva Alves Batista']) | <mandatory>, <multiple>, <options>,\n",
       " 'fiscal_responsavel': (value: Eric Magalhães Delgado) | <mandatory>, <options>,\n",
       " 'horas_de_conclusao': (value: 6) | <mandatory>,\n",
       " 'horas_de_deslocamento': (value: 2) | <mandatory>,\n",
       " 'horas_de_execucao': (value: 38) | <mandatory>,\n",
       " 'horas_de_preparacao': (value: 3) | <mandatory>,\n",
       " 'houve_obice': (value: 1) | <mandatory>, <options>,\n",
       " 'identificada_a_origem': (value: 1) | <mandatory>, <options>, conditional,\n",
       " 'irregularidade': (value: []), <multiple>, <options>,\n",
       " 'latitude_coordenadas': (value: -16.0) | <mandatory>,\n",
       " 'longitude_coordenadas': (value: -45.0) | <mandatory>,\n",
       " 'no_pcdp': (value: ),\n",
       " 'no_sav': (value: Teste de Quebra\n",
       "  de linha),\n",
       " 'no_sei_do_oficio_ao_mctic': (value: ),\n",
       " 'no_sei_processo_fiscalizacao': (value: {'numero': '53554.000005/2024-18', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134'}),\n",
       " 'no_sei_relatorio_de_atividades': (value: {'numero': '0207709', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134&id_documento=1984091'}),\n",
       " 'nome_da_entidade': (value: Globo S/A) | <mandatory>,\n",
       " 'observacao_tecnica_amostral': (value: Simulação com o HTZ) | <mandatory>,\n",
       " 'precisa_reservar_instrumentos': (value: 0) | <mandatory>, <options>, conditional,\n",
       " 'procedimentos': (value: ['Lacração']) | <mandatory>, <multiple>, <options>, conditional,\n",
       " 'qnt_produt_lacradosapreend': (value: 0) | <mandatory>,\n",
       " 'sanada_ou_mitigada': (value: ) | <mandatory>, <options>,\n",
       " 'servicos_da_inspecao': (value: ['000 - Não Aplicável', '167 - COLETIVO - ESPECIAL DE TELEVISAO POR ASSINATURA']) | <mandatory>, <multiple>, <options>,\n",
       " 'situacao_constatada': (value: Irregular) | <mandatory>, <options>,\n",
       " 'start_date': (value: 2024-03-01) | <mandatory>,\n",
       " 'status': (value: Relatando),\n",
       " 'tipo_de_inspecao': (value: Certificação) | <mandatory>, <options>, conditional,\n",
       " 'ufmunicipio': (value: ['PR/Pérola', 'PR/Santa Fé']) | <mandatory>, <multiple>, <options>,\n",
       " 'utilizou_tecnicas_amostrais': (value: Não usou técnicas amostrais) | <mandatory>, <options>,\n",
       " 'no_do_lacre': (value: ) | <mandatory>,\n",
       " 'motivo_de_lai': (value: []) | <mandatory>, <multiple>, <options>,\n",
       " 'no_sei_do_aviso_lai': (value: ) | <mandatory>,\n",
       " 'no_sei_do_plaiguarda': (value: ),\n",
       " 'gerar_plai': (value: ), <options>, conditional}"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.editable_fields"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Caso o conjunto de dados já seja conhecido para dado tipo de inspeção, basta passar o dicionário diretamente para o método `update`. Internamente os métodos mostrados anteriormente de atualização dos campos são chamados."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exemplo completo\n",
    "O dicionário a seguir contém valores misturados de diversos tipos de inspeção distintos, além de valores aleatorizados. A API simplesmente filtra os valores que se aplicam para o tipo de inspeção solicitada e o valor do dado fornecido para os campos condicionais. As demais chaves que não se aplicam são ignoradas."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "language": "python"
   },
   "outputs": [],
   "source": [
    "# | code-fold: true\n",
    "dados = {\n",
    "    \"endereco_da_inspecao\": \"Rua Machado de Assis, 27 - Morro Grande, Rio de Janeiro - RJ\",\n",
    "    \"campo_eletrico__pico_vm\": randint(50, 100),\n",
    "    \"campo_eletrico_rms_vm\": randint(20, 100),\n",
    "    \"coordenacao_responsavel\": \"FI2\",\n",
    "    \"cnpjcpf_da_entidade\": \"27865757000102\",\n",
    "    \"entidade_com_cadastro_stel\": \"Não\",\n",
    "    \"entidade_outorgada\": randint(0, 1),\n",
    "    \"esta_em_operacao\": randint(0, 1),\n",
    "    \"numero_da_estacao\": \"1493671\",\n",
    "    \"fiscais\": [\"Eric Magalhães Delgado\", \"Ronaldo da Silva Alves Batista\"],\n",
    "    \"fiscal_responsavel\": \"Eric Magalhães Delgado\",\n",
    "    \"foi_constatada_interferencia\": randint(0, 1),\n",
    "    \"frequencia_inicial\": randint(70, 110),\n",
    "    \"frequencia_final\": randint(110, 117),\n",
    "    \"gerar_relatorio\": '0',\n",
    "    \"gerar_plai\": randint(0, 1),\n",
    "    \"tipo_do_processo_plai\": random.choice(FIELDS[\"tipo_do_processo_plai\"].options),\n",
    "    \"coord_fi_plai\": random.choice(FIELDS[\"coord_fi_plai\"].options),\n",
    "    \"html_path\": \"/mnt/c/Users/rsilva/code/fiscaliza/tests/Report_2024.02.18_T11.30.55_123456.html\",\n",
    "    \"uploads\": [\n",
    "        {\n",
    "            \"path\": \"/mnt/c/Users/rsilva/code/fiscaliza/tests/Report_2024.02.18_T11.30.55_123456.json\",\n",
    "            \"filename\": \"Info.json\",\n",
    "        }\n",
    "    ],\n",
    "    \"identificada_a_origem\": str(randint(0, 1)),\n",
    "    \"unidade_da_frequencia_final\": \"MHz\",\n",
    "    \"unidade_da_frequencia_inicial\": \"MHz\",\n",
    "    \"horas_de_conclusao\": randint(1, 8),\n",
    "    \"horas_de_deslocamento\": randint(1, 8),\n",
    "    \"horas_de_execucao\": randint(8, 40),\n",
    "    \"horas_de_preparacao\": randint(1, 8),\n",
    "    \"houve_obice\": random.randint(0, 1),\n",
    "    \"houve_interferencia\": random.choice([\"Sim\", \"Não\"]),\n",
    "    \"latitude_coordenadas\": -randint(0, 33),\n",
    "    \"longitude_coordenadas\": -randint(34, 73),\n",
    "    \"latitude_da_estacao\": -randint(0, 33),\n",
    "    \"longitude_da_estacao\": -randint(34, 73),\n",
    "    \"nome_da_entidade\": \"Globo S/A\",\n",
    "    \"numero_do_pai\": \"123456\",\n",
    "    \"observacao_tecnica_amostral\": \"Simulação com o HTZ\",\n",
    "    \"pai_instaurado_pela_anatel\": random.choice([\"Sim\", \"Não\"]),\n",
    "    \"precisa_reservar_instrumentos\": \"0\",  #\n",
    "    \"procedimentos\": random.choices(FIELDS[\"procedimentos\"].options[1:], k=2),  #\n",
    "    \"qnt_produt_lacradosapreend\": \"0\",\n",
    "    \"reserva_de_instrumentos\": \"0\",\n",
    "    \"no_sav\": \"Teste de Quebra\\n de linha\",\n",
    "    \"documento_instaurador_do_pado\": \"0201235\\n0201239\\n0201237\",\n",
    "    \"no_do_lacre\": \"50\",\n",
    "    \"motivo_de_lai\": random.choice(FIELDS[\"motivo_de_lai\"].options),\n",
    "    \"no_sei_do_aviso_lai\": \"\",\n",
    "    \"sanada_ou_mitigada\": random.choice([\"0\", \"1\"]),\n",
    "    \"servicos_da_inspecao\": random.choices(list(SERVICOS.values()), k=2),\n",
    "    \"situacao_constatada\": \"Irregular\",\n",
    "    \"situacao_de_risco_a_vida\": \"Sim\",\n",
    "    \"tipo_de_inspecao\": random.choice(FIELDS[\"tipo_de_inspecao\"].options[1:]),\n",
    "    \"ufmunicipio\": random.choices(MUNICIPIOS, k=2),\n",
    "    \"uso_de_produto_homologado\": random.choice([\"0\", \"1\"]),\n",
    "    \"utilizou_algum_instrumento\": \"0\",\n",
    "    \"utilizou_apoio_policial\": random.choice(FIELDS[\"utilizou_apoio_policial\"].options),\n",
    "    \"utilizou_tecnicas_amostrais\": random.choice(\n",
    "        FIELDS[\"utilizou_tecnicas_amostrais\"].options\n",
    "    ),\n",
    "    \"description\": \"[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n\",\n",
    "    \"start_date\": \"2024-03-01\",\n",
    "    \"due_date\": \"2024-05-30\",\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'A Inspeção nº 124182 foi atualizada. O seu estado atual é \"Relatando\".'"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.update(dados)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Gerar Relatório de Atividades\n",
    "Para as inspeções de `Certificação` e `Uso do Espectro - Monitoração` é possível gerar o relatório de atividades no SEI por meio do Fiscaliza, para tal basta fornecer o valor: \n",
    "```\n",
    "dados['gerar_relatório'] = '1'\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Atualizado para o status Relatando\n"
     ]
    }
   ],
   "source": [
    "dados['Uso de Espectro - Monitoração']\n",
    "dados['gerar_relatorio'] = '1'\n",
    "issue.update(dados)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'acao': {'type': 'acao_de_inspecao',\n",
       "  'status': 'Em andamento',\n",
       "  'name': 'ACAO_GR08_2024_0014',\n",
       "  'description': '[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n'},\n",
       " 'agrupamento': '',\n",
       " 'allowed_statuses': '',\n",
       " 'anexos': ['https://sistemasnethm/fiscaliza/attachments/download/9190/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9191/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9192/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9196/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9197/Info.json'],\n",
       " 'ano_de_execucao': 2024,\n",
       " 'app_fiscaliza': 0,\n",
       " 'assigned_to': 'Eric Magalhães Delgado',\n",
       " 'atualizacao': 'Atualizada por Ronaldo da Silva Alves Batista em 26/07/2024 às 07:14:07',\n",
       " 'author': 'Eric Magalhães Delgado',\n",
       " 'changesets': '',\n",
       " 'children': '',\n",
       " 'classe_da_inspecao': 'Técnica',\n",
       " 'closed_on': '',\n",
       " 'cnpjcpf_da_entidade': 27865757000102,\n",
       " 'coordenacao_responsavel': 'FI2',\n",
       " 'created_on': '2024-04-18T12:38:03Z',\n",
       " 'data_de_inicio_efetivo': '2024-07-25',\n",
       " 'description': '[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n',\n",
       " 'done_ratio': 0,\n",
       " 'due_date': '2024-05-30',\n",
       " 'entidade_com_cadastro_stel': 'Não',\n",
       " 'estimated_hours': '',\n",
       " 'fiscais': ['Eric Magalhães Delgado', 'Ronaldo da Silva Alves Batista'],\n",
       " 'fiscal_responsavel': 'Eric Magalhães Delgado',\n",
       " 'frequencias': '',\n",
       " 'horas_de_conclusao': 3,\n",
       " 'horas_de_deslocamento': 7,\n",
       " 'horas_de_execucao': 11,\n",
       " 'horas_de_preparacao': 3,\n",
       " 'houve_interferencia': 'Sim',\n",
       " 'id': 124182,\n",
       " 'identificacao_da_nao_outorgada': '',\n",
       " 'identificada_a_origem': '',\n",
       " 'irregularidade': [],\n",
       " 'is_private': False,\n",
       " 'latitude_coordenadas': -16.0,\n",
       " 'longitude_coordenadas': -61.0,\n",
       " 'membros': ['Gilmar Ferreira do Nascimento',\n",
       "  'Luis Fernando Camelier de Queiroz',\n",
       "  'Michel Kulhavy Cerqueira',\n",
       "  'Iulo de Araújo Lima Lobo',\n",
       "  'Carlos Fernando Muniz Santos',\n",
       "  'Isabel Cristina Cruz Soares e Souza',\n",
       "  'Alessandro Vasconcelos Fernandes',\n",
       "  'Anecy Oliveira de Freitas',\n",
       "  'Wilton Machado de Oliveira',\n",
       "  'Ilva Perla Monteiro Ferreira',\n",
       "  'Lin Yu Wan',\n",
       "  'Alexnaldo Cerqueira da Silva',\n",
       "  'Jorgean Ferreira Leal',\n",
       "  'José Mauricio Leite Araújo',\n",
       "  'Arildo Oliva Franca Filho',\n",
       "  'Leonardo Lago Araújo',\n",
       "  'Brasilio Rios Leite',\n",
       "  'Fiscal UD',\n",
       "  'José Ivan Gomes',\n",
       "  'Jaqueline Cesario da Silva',\n",
       "  'Eric Magalhães Delgado',\n",
       "  'Ronaldo da Silva Alves Batista'],\n",
       " 'no_fiscaliza_issue': {'numero': '124182',\n",
       "  'link_acesso': 'https://sistemasnethm/fiscaliza/issues/124182'},\n",
       " 'no_pcdp': '',\n",
       " 'no_sav': 'Teste de Quebra\\n de linha',\n",
       " 'no_sei_do_oficio_ao_mctic': '',\n",
       " 'no_sei_processo_fiscalizacao': \"{'numero': '53554.000005/2024-18', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134'}\",\n",
       " 'nome_da_entidade': 'Globo S/A',\n",
       " 'observacao_tecnica_amostral': 'Simulação com o HTZ',\n",
       " 'potencia_medida': '',\n",
       " 'precisa_reservar_instrumentos': 0,\n",
       " 'priority': 'Normal',\n",
       " 'procedimentos': ['Não Lacrado - Amparo Judicial',\n",
       "  'Não Lacrado - Desativado'],\n",
       " 'project': 'GR08',\n",
       " 'qnt_produt_lacradosapreend': 0,\n",
       " 'servicos_da_inspecao': ['728 - RESTRITO - ESPECIAL DE REPETICAO DE TELEVISAO',\n",
       "  '043 - COLETIVO - ESPECIAL DE RADIORRECADO'],\n",
       " 'situacao_constatada': 'Irregular',\n",
       " 'situacao_de_risco_a_vida': 'Sim',\n",
       " 'spent_hours': 0.0,\n",
       " 'start_date': '2024-03-01',\n",
       " 'status': 'Relatando',\n",
       " 'subject': 'INSP_GR08_2024_0147',\n",
       " 'subtema': ['Radiomonitoração Terrestre'],\n",
       " 'tema': ['Uso do Espectro'],\n",
       " 'time_entries': '',\n",
       " 'tipificacao_da_infracao': '',\n",
       " 'tipo_de_inspecao': 'Uso do Espectro - Não Outorgado',\n",
       " 'total_de_horas': 24.0,\n",
       " 'total_estimated_hours': '',\n",
       " 'total_spent_hours': 0.0,\n",
       " 'tracker': 'Atividade de Inspeção',\n",
       " 'ufmunicipio': ['PR/Lindoeste', 'RS/Canoas'],\n",
       " 'unidade_de_frequencia': '',\n",
       " 'unidade_de_potencia': '',\n",
       " 'updated_on': '2024-07-26T10:14:06Z',\n",
       " 'uso_de_produto_homologado': 0,\n",
       " 'utilizou_algum_instrumento': 0,\n",
       " 'utilizou_apoio_policial': 'Polícia Civil',\n",
       " 'utilizou_tecnicas_amostrais': 'Não usou técnicas amostrais',\n",
       " 'watchers': ''}"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.attrs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> Para substituir o relatório de atividades, basta refazer a chamada fornecendo o valor `1` para a chave `gerar_relatorio`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Atualizado para o status Relatando\n"
     ]
    }
   ],
   "source": [
    "dados[\"Certificação\"]\n",
    "dados[\"gerar_relatorio\"] = \"1\"\n",
    "issue.update(dados)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'acao': {'type': 'acao_de_inspecao',\n",
       "  'status': 'Em andamento',\n",
       "  'name': 'ACAO_GR08_2024_0014',\n",
       "  'description': '[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n'},\n",
       " 'agrupamento': '',\n",
       " 'allowed_statuses': '',\n",
       " 'anexos': ['https://sistemasnethm/fiscaliza/attachments/download/9190/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9191/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9192/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9196/Info.json',\n",
       "  'https://sistemasnethm/fiscaliza/attachments/download/9197/Info.json'],\n",
       " 'ano_de_execucao': 2024,\n",
       " 'app_fiscaliza': 0,\n",
       " 'assigned_to': 'Eric Magalhães Delgado',\n",
       " 'atualizacao': 'Atualizada por Ronaldo da Silva Alves Batista em 26/07/2024 às 07:14:21',\n",
       " 'author': 'Eric Magalhães Delgado',\n",
       " 'changesets': '',\n",
       " 'children': '',\n",
       " 'classe_da_inspecao': 'Técnica',\n",
       " 'closed_on': '',\n",
       " 'cnpjcpf_da_entidade': 27865757000102,\n",
       " 'coordenacao_responsavel': 'FI2',\n",
       " 'created_on': '2024-04-18T12:38:03Z',\n",
       " 'data_de_inicio_efetivo': '2024-07-25',\n",
       " 'description': '[PMEC 2024 Etapa 2] Monitorar canais e faixas de frequências relacionados às aplicações críticas (como, por exemplo, radionavegação e radiocomunicação aeronáutica e canais de emergência) na forma a ser estabelecida no Plano de Ação de Fiscalização.\\r\\n',\n",
       " 'done_ratio': 0,\n",
       " 'due_date': '2024-05-30',\n",
       " 'entidade_com_cadastro_stel': 'Não',\n",
       " 'estimated_hours': '',\n",
       " 'fiscais': ['Eric Magalhães Delgado', 'Ronaldo da Silva Alves Batista'],\n",
       " 'fiscal_responsavel': 'Eric Magalhães Delgado',\n",
       " 'frequencias': '',\n",
       " 'horas_de_conclusao': 3,\n",
       " 'horas_de_deslocamento': 7,\n",
       " 'horas_de_execucao': 11,\n",
       " 'horas_de_preparacao': 3,\n",
       " 'houve_interferencia': 'Sim',\n",
       " 'id': 124182,\n",
       " 'identificacao_da_nao_outorgada': '',\n",
       " 'identificada_a_origem': 0,\n",
       " 'irregularidade': [],\n",
       " 'is_private': False,\n",
       " 'latitude_coordenadas': -16.0,\n",
       " 'longitude_coordenadas': -61.0,\n",
       " 'membros': ['Gilmar Ferreira do Nascimento',\n",
       "  'Luis Fernando Camelier de Queiroz',\n",
       "  'Michel Kulhavy Cerqueira',\n",
       "  'Iulo de Araújo Lima Lobo',\n",
       "  'Carlos Fernando Muniz Santos',\n",
       "  'Isabel Cristina Cruz Soares e Souza',\n",
       "  'Alessandro Vasconcelos Fernandes',\n",
       "  'Anecy Oliveira de Freitas',\n",
       "  'Wilton Machado de Oliveira',\n",
       "  'Ilva Perla Monteiro Ferreira',\n",
       "  'Lin Yu Wan',\n",
       "  'Alexnaldo Cerqueira da Silva',\n",
       "  'Jorgean Ferreira Leal',\n",
       "  'José Mauricio Leite Araújo',\n",
       "  'Arildo Oliva Franca Filho',\n",
       "  'Leonardo Lago Araújo',\n",
       "  'Brasilio Rios Leite',\n",
       "  'Fiscal UD',\n",
       "  'José Ivan Gomes',\n",
       "  'Jaqueline Cesario da Silva',\n",
       "  'Eric Magalhães Delgado',\n",
       "  'Ronaldo da Silva Alves Batista'],\n",
       " 'no_fiscaliza_issue': {'numero': '124182',\n",
       "  'link_acesso': 'https://sistemasnethm/fiscaliza/issues/124182'},\n",
       " 'no_pcdp': '',\n",
       " 'no_sav': 'Teste de Quebra\\n de linha',\n",
       " 'no_sei_do_oficio_ao_mctic': '',\n",
       " 'no_sei_processo_fiscalizacao': \"{'numero': '53554.000005/2024-18', 'link_acesso': 'https://seihm.anatel.gov.br/sei/controlador.php?acao=procedimento_trabalhar&id_procedimento=1982134'}\",\n",
       " 'nome_da_entidade': 'Globo S/A',\n",
       " 'observacao_tecnica_amostral': 'Simulação com o HTZ',\n",
       " 'potencia_medida': '',\n",
       " 'precisa_reservar_instrumentos': 0,\n",
       " 'priority': 'Normal',\n",
       " 'procedimentos': ['Não Lacrado - Amparo Judicial',\n",
       "  'Não Lacrado - Desativado'],\n",
       " 'project': 'GR08',\n",
       " 'qnt_produt_lacradosapreend': 0,\n",
       " 'servicos_da_inspecao': ['728 - RESTRITO - ESPECIAL DE REPETICAO DE TELEVISAO',\n",
       "  '043 - COLETIVO - ESPECIAL DE RADIORRECADO'],\n",
       " 'situacao_constatada': 'Irregular',\n",
       " 'situacao_de_risco_a_vida': 'Sim',\n",
       " 'spent_hours': 0.0,\n",
       " 'start_date': '2024-03-01',\n",
       " 'status': 'Relatando',\n",
       " 'subject': 'INSP_GR08_2024_0147',\n",
       " 'subtema': ['Radiomonitoração Terrestre'],\n",
       " 'tema': ['Uso do Espectro'],\n",
       " 'time_entries': '',\n",
       " 'tipificacao_da_infracao': '',\n",
       " 'tipo_de_inspecao': 'Uso do Espectro - Não Outorgado',\n",
       " 'total_de_horas': 24.0,\n",
       " 'total_estimated_hours': '',\n",
       " 'total_spent_hours': 0.0,\n",
       " 'tracker': 'Atividade de Inspeção',\n",
       " 'ufmunicipio': ['PR/Lindoeste', 'RS/Canoas'],\n",
       " 'unidade_de_frequencia': '',\n",
       " 'unidade_de_potencia': '',\n",
       " 'updated_on': '2024-07-26T10:14:21Z',\n",
       " 'uso_de_produto_homologado': 0,\n",
       " 'utilizou_algum_instrumento': 0,\n",
       " 'utilizou_apoio_policial': 'Polícia Civil',\n",
       " 'utilizou_tecnicas_amostrais': 'Não usou técnicas amostrais',\n",
       " 'watchers': ''}"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "issue.attrs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> Caso o intuito seja somente editar o campo `Relatório de Atividades`, basta fornecer o valor para a chave `relatorio_de_atividades` e não esquecer de fornecer o valor `0` para a chave `gerar_relatório` ou simplesmente excluí-la.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "language": "python"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Atualizado para o status Relatando\n"
     ]
    }
   ],
   "source": [
    "dados['relatorio_de_atividades'] = '0206885'\n",
    "dados['gerar_relatorio'] = '0'\n",
    "issue.update(dados)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "python3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
