App: Solicitação de Transmissão¶
Visão Geral¶
Este app é responsável por gerenciar e organizar as solicitações de transmissão de eventos em espaços físicos institucionais.
O módulo garante o controle de disponibilidade, requisitos de aceite de termo, escolha de espaços, horários e comunicação com as equipes responsáveis.
As configurações do sistema definem limites, portanto, datas disponíveis para pedidos.
Funcionalidades Principais¶
- Aceite de termo de responsabilidade: O requisitante deve aceitar eletronicamente o termo antes de iniciar a solicitação.
- Seleção de espaço físico: Exibe espaços físicos vistoriados e aprovados pela equipe.
- Escolha do período e dos horários: Usuário escolhe dias e horários livres, conforme disponibilidade da equipe.
- Cadastro de observações obrigatórias: Permite registrar necessidades, justificativas e outros detalhes relevantes da transmissão.
- Confirmação e geração de assinatura digital (hash): Ao final do fluxo, o sistema gera uma confirmação detalhada com todos os dados da solicitação e uma 'assinatura digital' baseada em SHA-256, calculada a partir das informações essenciais do pedido, incluindo local físico e termo de responsabilidade. Essa assinatura serve para garantir a integridade dos dados e comprovar que nenhum campo foi alterado após a confirmação.
- Envio automático de e-mails: Após a confirmação, envia os dados completos para a equipe responsável, que entrará em contato com o requisitante.
- Controle de sessões e restrições de múltiplos pedidos: Limita transmissões simultâneas por pessoa e validações em toda etapa do fluxo.
Fluxo Resumido de Uso¶
- Usuário acessa a tela inicial e aceita o termo de responsabilidade.
- Seleciona um espaço físico disponível para transmissão.
- Escolhe o período desejado (datas de início e fim), dentro das regras institucionais.
- Visualiza e seleciona horários livres conforme os dias escolhidos.
- Registra uma observação obrigatória sobre a transmissão.
- Confirma a solicitação, visualizando o resumo e assinatura/hash.
- Sistema envia o resumo por e-mail para a equipe.
Endpoints e Funcionalidades¶
-
Aceite do termo de responsabilidade:
GET/POST /backend/transmissao/termo/- GET: Exibe o termo vigente e valida limite de pedidos ativos.
- POST: Registra o aceite do termo na sessão.
-
Listar espaços físicos disponíveis:
GET/POST /backend/transmissao/espaco-fisico/- GET: Lista todos os ambientes ativos para seleção.
- POST: Seleciona e registra o espaço físico na sessão do usuário.
-
Selecionar período (datas):
POST /backend/transmissao/periodo/- POST: Recebe as datas de início e fim desejadas, valida regras institucionais e armazena na sessão.
-
Listar horários disponíveis por dia:
GET /backend/transmissao/horarios/- GET: Lista, para cada dia do período, os horários livres (considerando reservas e buffers do espaço).
-
Reservar horários e registrar observação:
POST /backend/transmissao/horarios/- POST: Recebe os horários escolhidos e a observação, valida conflitos e cria o pedido de transmissão.
-
Confirmação e envio:
GET /backend/transmissao/confirmacao/- GET: Retorna os dados da solicitação para conferência, envia por e-mail e gera assinatura/hash de segurança.
Regras de Negócio e Validações¶
- O termo de responsabilidade deve ser aceito antes de qualquer ação.
- Espaços físicos são sujeitos à vistoria e disponibilidade.
- Só é possível reservar horários em dias e horários realmente livres, sem conflitos com outros pedidos ou buffers (tempo de vistoria/montagem/desmontagem).
- Observação é obrigatória no pedido, o evento deve ser sucintamente descrito
- Toda ação é validada em múltiplas etapas, com controle de sessão e hashes para segurança.