| ... | ... | @@ -25,219 +25,239 @@ O Target é o eixo central da modelagem, conectando formulários, evidências, r |
|
|
|
|
|
|
|
## Operation
|
|
|
|
|
|
|
|
**Função:** Representa a operação oficial conduzida pelo GAECO.
|
|
|
|
|
|
|
|
**Campos-chave:**
|
|
|
|
- `id` (PK), `name`, `description`, `status`
|
|
|
|
- `responsible_prosecutor_office`, `responsible_prosecutor`
|
|
|
|
- `pic_number`, `judicial_process`, `judicial_body`, `judicial_authority`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Função:** Representa a operação oficial (investigação) conduzida pelo órgão, centralizando os dados administrativos e judiciais.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único da operação (UUID).
|
|
|
|
- `name`: Nome de código ou oficial da operação.
|
|
|
|
- `description`: Detalhes descritivos sobre o objetivo da operação.
|
|
|
|
- `status`: Estado atual (Planejamento, Em Progresso, Concluída, Cancelada).
|
|
|
|
- `responsible_prosecutor_office`: Promotoria ou órgão do Ministério Público responsável.
|
|
|
|
- `responsible_prosecutor`: Nome do promotor responsável.
|
|
|
|
- `pic_number`: Número do Procedimento Investigatório Criminal (PIC) ou inquérito.
|
|
|
|
- `judicial_process`: Número do processo judicial unificado.
|
|
|
|
- `judicial_body`: Órgão julgador (ex: 1ª Vara Criminal).
|
|
|
|
- `judicial_authority`: Nome do Juiz responsável.
|
|
|
|
- `created_at`: Data de criação do registro.
|
|
|
|
- `updated_at`: Data da última atualização.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Target
|
|
|
|
|
|
|
|
**Função:** Entidade central que representa o alvo da operação.
|
|
|
|
|
|
|
|
**Campos-chave:**
|
|
|
|
- `id` (PK), `id_operation` (FK), `id_location` (FK), `id_hospital` (FK)
|
|
|
|
- `target_number`, `scheduled_date`
|
|
|
|
- `name`, `cpf`, `rg`
|
|
|
|
- `parents`, `briefing_location`, `environment_description`
|
|
|
|
- `relationships`, `observations`, `warrant_url`
|
|
|
|
- `targeted_materials`, `mba_number`, `ended_at`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Função:** Entidade central que representa o alvo da operação (pessoa ou local a ser abordado) e vincula logística e inteligência.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único do alvo.
|
|
|
|
- `id_operation`: Referência à operação a qual este alvo pertence.
|
|
|
|
- `id_location`: Referência ao endereço do alvo.
|
|
|
|
- `id_hospital`: Referência ao hospital mais próximo.
|
|
|
|
- `target_number`: Número identificador tático do alvo.
|
|
|
|
- `scheduled_date`: Data/hora agendada para a abordagem.
|
|
|
|
- `name`: Nome completo do alvo (pessoa física).
|
|
|
|
- `rg`: Registro Geral (documento de identidade).
|
|
|
|
- `cpf`: Cadastro de Pessoas Físicas.
|
|
|
|
- `parents`: Filiação (pai e mãe).
|
|
|
|
- `date_of_birth`: Data de nascimento.
|
|
|
|
- `briefing_location`: Local onde será realizado o briefing da equipe.
|
|
|
|
- `environment_description`: Descrição do ambiente (ex: riscos, estrutura).
|
|
|
|
- `relationships`: Descrição de vínculos ou comparsas.
|
|
|
|
- `observations`: Observações gerais de inteligência ou segurança.
|
|
|
|
- `warrant_url`: Link para o arquivo digital do mandado.
|
|
|
|
- `targeted_materials`: Lista de materiais esperados para apreensão.
|
|
|
|
- `mba_number`: Número do Mandado de Busca e Apreensão.
|
|
|
|
- `ended_at`: Data/hora em que a ação no alvo foi finalizada.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Location
|
|
|
|
|
|
|
|
**Função:** Endereço vinculado ao Target.
|
|
|
|
**Função:** Armazena dados geográficos e de endereço físico, geralmente residências ou locais de busca.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `owner`, `latitude`, `longitude`
|
|
|
|
- `image_url`, `address`, `postal_code`, `number`, `complement`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único do local.
|
|
|
|
- `owner`: Nome do proprietário do imóvel.
|
|
|
|
- `latitude`: Coordenada geográfica (latitude).
|
|
|
|
- `longitude`: Coordenada geográfica (longitude).
|
|
|
|
- `image_url`: Link para foto da fachada ou mapa.
|
|
|
|
- `address`: Nome da rua/logradouro.
|
|
|
|
- `postal_code`: CEP.
|
|
|
|
- `number`: Número do imóvel.
|
|
|
|
- `complement`: Complemento (apto, bloco).
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Hospital
|
|
|
|
|
|
|
|
**Função:** Instituição de saúde vinculada ao Target.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `latitude`, `longitude`, `address`
|
|
|
|
- `postal_code`, `number`, `complement`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
|
|
|
|
---
|
|
|
|
**Função:** Pontos de referência médicos para suporte logístico e emergencial durante a operação.
|
|
|
|
|
|
|
|
# Formulários e Fluxos Específicos
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único do hospital.
|
|
|
|
- `latitude`: Coordenada geográfica.
|
|
|
|
- `longitude`: Coordenada geográfica.
|
|
|
|
- `address`: Endereço do hospital.
|
|
|
|
- `postal_code`: CEP.
|
|
|
|
- `number`: Número.
|
|
|
|
- `complement`: Complemento.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Form
|
|
|
|
## Agent
|
|
|
|
|
|
|
|
**Função:** Registro base utilizado em diferentes fluxos.
|
|
|
|
**Função:** Cadastro dos policiais e agentes envolvidos na operação.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK)
|
|
|
|
- `start_time`, `end_time`
|
|
|
|
- `entry_type`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único do agente.
|
|
|
|
- `name`: Nome completo.
|
|
|
|
- `ocupation`: Cargo ou patente.
|
|
|
|
- `role`: Referência ao nível de permissão no sistema.
|
|
|
|
- `institution`: Instituição de origem (ex: PC, PF, PM).
|
|
|
|
- `unit`: Unidade de lotação.
|
|
|
|
- `rg`: Registro Geral.
|
|
|
|
- `cpf`: CPF (chave única).
|
|
|
|
- `phone`: Telefone de contato.
|
|
|
|
- `password`: Hash da senha de acesso.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## MBA Form (`mba_form`)
|
|
|
|
## Team
|
|
|
|
|
|
|
|
**Função:** Registro do módulo MBA Digital.
|
|
|
|
**Função:** Define a equipe tática designada para cumprir o mandado em um alvo específico.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK — unique)
|
|
|
|
- `objective`, `additional_info`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador da equipe.
|
|
|
|
- `id_target`: Referência ao alvo da equipe.
|
|
|
|
- `leader_id`: Referência ao agente líder da equipe.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Compliance Form (`compliance_form`)
|
|
|
|
## Team_Agent
|
|
|
|
|
|
|
|
**Função:** Informações de cumprimento de mandado ou medida cautelar.
|
|
|
|
**Função:** Tabela associativa que vincula os agentes às suas respectivas equipes.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK — unique)
|
|
|
|
- `issuance_date`, `issuing_judge`
|
|
|
|
- `arrest_observations`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador do vínculo.
|
|
|
|
- `id_team`: Referência à equipe.
|
|
|
|
- `id_agent`: Referência ao agente membro.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Recovery Form (`recovery_form`)
|
|
|
|
## Form (Tabela Base)
|
|
|
|
|
|
|
|
**Função:** Registro do módulo Recupera.
|
|
|
|
**Função:** Registro genérico das ações e formalizações realizadas no local do alvo.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK — unique)
|
|
|
|
- `asset_type`, `asset_description`
|
|
|
|
- `estimated_value`, `asset_location`
|
|
|
|
- `originating_process`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único do formulário.
|
|
|
|
- `id_target`: Referência ao alvo relacionado.
|
|
|
|
- `start_time`: Hora de início da ação.
|
|
|
|
- `end_time`: Hora de término da ação.
|
|
|
|
- `entry_type`: Tipo de entrada (Forçada, Permitida, Ninguém).
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# Materiais e Apreensões
|
|
|
|
## Mba_Form (Estende Form)
|
|
|
|
|
|
|
|
---
|
|
|
|
**Função:** Detalhamento específico para cumprimento de Mandados de Busca e Apreensão.
|
|
|
|
|
|
|
|
## Seized Material (`seized_material`)
|
|
|
|
|
|
|
|
**Função:** Materiais apreendidos durante a operação.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK)
|
|
|
|
- `description`, `type`, `found_location`
|
|
|
|
- `seal_number`, `image_url`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Referência ao ID da tabela Form.
|
|
|
|
- `objective`: Objetivo da busca.
|
|
|
|
- `additional_info`: Informações adicionais.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Seized Drug (`seized_drug`)
|
|
|
|
## Compliance_Form (Estende Form)
|
|
|
|
|
|
|
|
**Função:** Registro de substâncias apreendidas.
|
|
|
|
**Função:** Detalhamento para cumprimento de ordens judiciais (prisões, conduções).
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK)
|
|
|
|
- `drug_type`, `amount`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Referência ao ID da tabela Form.
|
|
|
|
- `issuance_date`: Data de emissão da ordem.
|
|
|
|
- `issuing_judge`: Juiz emissor.
|
|
|
|
- `arrest_observations`: Observações sobre a detenção.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Seized Money (`seized_money`)
|
|
|
|
## Recovery_Form (Estende Form)
|
|
|
|
|
|
|
|
**Função:** Valores apreendidos.
|
|
|
|
**Função:** Registro específico para recuperação e sequestro de bens e ativos.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK)
|
|
|
|
- `currency`, `amount`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Referência ao ID da tabela Form.
|
|
|
|
- `asset_type`: Tipo do bem (Veículo, Imóvel, etc.).
|
|
|
|
- `asset_description`: Descrição do bem.
|
|
|
|
- `estimated_value`: Valor estimado.
|
|
|
|
- `asset_location`: Local onde o bem estava.
|
|
|
|
- `originating_process`: Processo de origem.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# Agentes e Equipes
|
|
|
|
## Seized_Material (Tabela Base)
|
|
|
|
|
|
|
|
---
|
|
|
|
**Função:** Registro central de todas as evidências e materiais apreendidos.
|
|
|
|
|
|
|
|
## Agent
|
|
|
|
|
|
|
|
**Função:** Representa usuários operacionais.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `name`, `occupation`, `role`
|
|
|
|
- `institution`, `unit`
|
|
|
|
- `rg`, `cpf`, `phone`, `password`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único do material.
|
|
|
|
- `id_target`: Referência ao alvo de origem.
|
|
|
|
- `description`: Descrição do item.
|
|
|
|
- `type`: Categoria do material (Eletrônico, Arma, etc.).
|
|
|
|
- `found_location`: Local específico onde foi encontrado.
|
|
|
|
- `seal_number`: Número do lacre da evidência.
|
|
|
|
- `image_url`: Foto da evidência.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Team
|
|
|
|
## Seized_Money (Estende Seized_Material)
|
|
|
|
|
|
|
|
**Função:** Equipe associada a um Target.
|
|
|
|
**Função:** Detalhamento específico para apreensão de numerário.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK), `leader_id` (FK → Agent)
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Referência ao ID da tabela Seized_Material.
|
|
|
|
- `currency`: Código da moeda (BRL, USD).
|
|
|
|
- `amount`: Valor total.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Team Agent (`team_agent`)
|
|
|
|
## Seized_Drug (Estende Seized_Material)
|
|
|
|
|
|
|
|
**Função:** Tabela associativa que relaciona Agentes com Equipes.
|
|
|
|
**Função:** Detalhamento específico para apreensão de entorpecentes.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_team` (FK), `id_agent` (FK)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# Reuniões
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Referência ao ID da tabela Seized_Material.
|
|
|
|
- `drug_type`: Tipo da droga.
|
|
|
|
- `amount`: Quantidade ou peso.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Meeting
|
|
|
|
|
|
|
|
**Função:** Reuniões e briefings operacionais.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `id_target` (FK)
|
|
|
|
- `location`, `scheduled_date`
|
|
|
|
- `created_at`, `updated_at`
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# Controle de Permissões
|
|
|
|
**Função:** Registro de briefings ou reuniões preparatórias vinculadas a um alvo.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Role
|
|
|
|
|
|
|
|
**Função:** Papel do usuário.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `title`, `description`
|
|
|
|
**Campos:**
|
|
|
|
- `id`: Identificador único da reunião.
|
|
|
|
- `id_target`: Referência ao alvo.
|
|
|
|
- `location`: Local da reunião.
|
|
|
|
- `scheduled_date`: Data e hora agendada.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Permission
|
|
|
|
## Role & Permissions
|
|
|
|
|
|
|
|
**Função:** Ação autorizável no sistema.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id` (PK), `title`, `description`
|
|
|
|
|
|
|
|
---
|
|
|
|
**Função:** Controle de Acesso Baseado em Funções (RBAC) para usuários do sistema.
|
|
|
|
|
|
|
|
## Role Permissions (`role_permissions`)
|
|
|
|
**Campos (Role):**
|
|
|
|
- `id`: ID do perfil.
|
|
|
|
- `title`: Nome do perfil.
|
|
|
|
- `description`: Descrição do perfil.
|
|
|
|
|
|
|
|
**Função:** Tabela associativa entre papéis e permissões.
|
|
|
|
**Campos (Permission):**
|
|
|
|
- `id`: ID da permissão.
|
|
|
|
- `title`: Nome da permissão.
|
|
|
|
- `description`: Descrição da permissão.
|
|
|
|
|
|
|
|
**Campos:**
|
|
|
|
- `id_role` (FK), `id_permission` (FK)
|
|
|
|
**Campos (Role_Permissions):**
|
|
|
|
- `id_role`: ID do perfil.
|
|
|
|
- `id_permission`: ID da permissão vinculada.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
| ... | ... | |