Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • W Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Lobo-guará
  • Wiki
  • Wiki
  • Banco de Dados

Banco de Dados · Changes

Page history
Update Banco de Dados authored Jun 13, 2025 by Eduardo Martignoni's avatar Eduardo Martignoni
Hide whitespace changes
Inline Side-by-side
Banco-de-Dados.md
View page @ 89249d65
......@@ -22,18 +22,26 @@ Tabela que armazena os dados de todos os usuários da plataforma, incluindo refu
| Campo | Tipo | Descrição |
|---------------|----------------|-----------------------------------|
| id | String | Identificador único do usuário |
| name | String | Nome completo |
| email | String | E-mail |
| password | String | Senha (criptografada) |
| phone | String | Telefone |
| city | String | Cidade |
| state | String | Estado |
| language | LanguageEnum | Idioma preferido |
| created_at | DateTime | Data de criação |
| deleted_at | DateTime | Data de exclusão (soft delete) |
| updated_at | DateTime | Última atualização |
| role | RoleEnum | Papel na plataforma |
| id | String | Identificador único do usuário |
| name | String | Nome completo |
| email | String | E-mail |
| password | String | Senha (criptografada) |
| phone | String | Telefone |
| city | String | Cidade |
| state | String | Estado |
| language | LanguageEnum | Idioma preferido |
| created_at | DateTime | Data de criação |
| deleted_at | DateTime | Data de exclusão (soft delete) |
| updated_at | DateTime | Última atualização |
| last_login | DateTime | Último login |
| role | RoleEnum | Papel na plataforma |
| refugie | Refugie | Objeto com os dados de refugiado (se houver)|
| institution | Institution | Objeto com os dados da instituição (se houver)|
| admin | Admin | Objeto com os dados de admin (se houver) |
| topics | Topic[] | Lista de tópicos criados pelo usuário |
| messages | Message[] | Lista de mensagens criadas pelo usuário |
| auth_tokens | AuthToken[] | Lista de tokens de autenticação do usuário |
| TwoFactor | TwoFactor | Configuração de autenticação em duas etapas |
#### `RoleEnum`
- `ADMIN`
......@@ -44,6 +52,7 @@ Tabela que armazena os dados de todos os usuários da plataforma, incluindo refu
- `PORTUGUESE`
- `ENGLISH`
- `SPANISH`
- `FRENCH`
---
......@@ -52,8 +61,9 @@ Contém informações específicas de usuários com papel de refugiado.
| Campo | Tipo | Descrição |
|-------|--------|------------------------------------|
| id | String | Identificador do refugiado |
| userId| String | Referência à tabela `users` |
| id | String | Identificador do refugiado |
| userId| String | Referência à tabela `users` |
| user | User | Objeto com os dados do usuário relacionado |
---
......@@ -64,10 +74,10 @@ Instituições que oferecem apoio ou oportunidades a refugiados.
|-----------|--------------------------|---------------------------------|
| id | String | Identificador da instituição |
| cnpj | String | CNPJ da organização |
| latitude | Float | Latitude geográfica |
| longitude | Float | Longitude geográfica |
| userId | String | Referência ao usuário responsável |
| status | InstitutionStatusEnum | Situação da instituição |
| user | User | Objeto com os dados do usuário relacionado |
#### `InstitutionStatusEnum`
- `WAITING`
......@@ -83,6 +93,8 @@ Armazena usuários com papel administrativo no sistema.
|--------|--------|----------------------------|
| id | String | Identificador do admin |
| userId | String | Referência à tabela `users`|
| user | User | Objeto com os dados do usuário relacionado |
---
......@@ -91,33 +103,33 @@ Assuntos gerais da comunidade, usados como categorias nos tópicos.
| Campo | Tipo | Descrição |
|-------------|---------------|----------------------------|
| id | String | Identificador |
| name | varchar(16) | Nome do assunto |
| description | varchar(256) | Descrição do assunto |
---
### `tags`
Etiquetas para classificar e organizar assuntos.
| id | String | Identificador |
| name | varchar(16) | Nome do assunto |
| description | varchar(256) | Descrição do assunto |
| created_at | DateTime | Data de criação do assunto |
| topics | Topic[] | Lista de tópicos vinculados |
| Campo | Tipo | Descrição |
|------------|--------------|-----------------------------------|
| id | String | Identificador |
| subject_id | String | Referência à tabela `subjects` |
| name | varchar(16) | Nome da tag |
---
### `topics`
Tópicos de discussão criados por usuários.
| Campo | Tipo | Descrição |
|-------------|----------------|-----------------------------------|
| id | String | Identificador do tópico |
| title | String | Título do tópico |
| subject_id | String | Referência ao assunto |
| author_id | String | Usuário criador |
| description | varchar(1000) | Conteúdo do tópico |
| views | integer | Quantidade de visualizações |
| subject | Subject | Objeto com os dados do assunto relacionado|
| author | User | Objeto com os dados do autor |
| created_at | DateTime | Data de criação |
| updated_at | DateTime | Última atualização |
| deleted_at | DateTime | Data de exclusão |
| is_deleted | Boolean | Indicador lógico de exclusão |
---
......@@ -131,8 +143,15 @@ Mensagens em tópicos, podendo ser respostas a outras mensagens.
| parent_id | String | Mensagem pai (para replies) |
| author_id | String | Autor da mensagem |
| content | varchar(1000) | Texto da mensagem |
| creation_dt | timestamp | Data e hora de criação |
| creation_at | DateTime | Data e hora de criação |
| nmb_likes | integer | Número de curtidas |
| image_url | String | URL de imagem opcional |
| deleted | Boolean | Indicador lógico de exclusão |
| deleted_at | DateTime | Data de exclusão (soft delete) |
| topic | Topic | Objeto com os dados do tópico |
| parent | Message? | Objeto da mensagem pai (se houver) |
| children | Message[] | Lista de respostas desta mensagem |
---
......@@ -148,6 +167,9 @@ Tokens de autenticação utilizados para operações específicas.
| expires_at | DateTime | Expiração |
| created_at | DateTime | Data de criação |
| used_at | DateTime | Data de uso |
| validated | Boolean | Indica se o token já foi validado |
| user | User | Objeto com os dados do usuário |
#### `TokenTypeEnum`
- `PASSWORD_RESET`
......@@ -156,16 +178,49 @@ Tokens de autenticação utilizados para operações específicas.
---
### `help_centers`
Centros de apoio geográficos cadastrados na plataforma.
| Campo | Tipo | Descrição |
|------------|-----------|----------------------------------------|
| id | String | Identificador único do centro |
| name | String | Nome do centro (único) |
| latitude | Float | Latitude geográfica |
| longitude | Float | Longitude geográfica |
| resume | String | Descrição resumida do centro |
| created_at | DateTime | Data de criação do registro |
| updated_at | DateTime | Data da última atualização |
| deleted_at | DateTime | Data de exclusão (soft delete) |
---
### `two_factor`
Dados de autenticação em dois fatores.
| Campo | Tipo | Descrição |
|------------|-----------|----------------------------------------------|
| id | String | Identificador do registro |
| user_id | String | Referência ao usuário (`users.id`) |
| code | String | Código de autenticação |
| created_at | DateTime | Data de criação |
| expires_at | DateTime | Data de expiração automática (5 minutos) |
| deleted_at | DateTime | Data de exclusão (soft delete) |
| user | User | Objeto com os dados do usuário |
---
## Relacionamentos
- Um **usuário** pode ser um **refugiado**, **instituição** ou **administrador**, dependendo do valor do campo `role`.
- Um **usuário** pode ser um **refugiado**, **instituição** ou **administrador**, dependendo do valor do campo `role` (relacionamentos 1:1 via `Refugie`, `Institution` ou `Admin`).
- Um **usuário** pode criar vários **tópicos** (`User.topics` → `Topic.author_id`).
- Um **usuário** pode criar várias **mensagens** (`User.messages` → `Message.author_id`).
- Um **usuário** pode ter múltiplos **tokens de autenticação** (`User.authTokens` → `AuthToken.user_id`).
- Um **usuário** pode ter uma configuração de **autenticação em duas etapas** (`User.TwoFactor` → `TwoFactor.user_id`).
- A tabela `refugies` se relaciona 1:1 com `users`.
- A tabela `institutions` também possui um relacionamento 1:1 com `users`, indicando o representante da instituição.
- A tabela `admins` relaciona administradores a usuários.
- Um **assunto (`subject`)** pode possuir várias **tags** e vários **tópicos**.
- Um **tópico** é criado por um usuário e pertence a um **assunto**.
- Uma **mensagem** pertence a um **tópico** e pode ser uma resposta a outra mensagem.
- Um **usuário** pode possuir múltiplos **tokens de autenticação** para diferentes finalidades.
- Um **assunto (`subject`)** pode possuir vários **tópicos** (`Topic.subject_id`).
- Um **tópico** pode ter várias **mensagens** (`Message.topic_id`).
- Uma **mensagem** pode ser resposta a outra **mensagem** (`Message.parent_id`), criando um relacionamento hierárquico (replies).
![Ages-lobo-guara-alt](uploads/05b9eba7557fe61284f301c2cfe57057/Ages-lobo-guara-alt.png)
\ No newline at end of file
![Untitled](uploads/50c9121137627e2687cef109720ac942/Untitled.png)
\ No newline at end of file
Clone repository
  • Arquitetura do Projeto
  • Banco de Dados
  • Configuração do Ambiente
  • Código
  • Escopo e Cronograma
  • Processos
  • codigo
  • design
    • mockups
  • Home
  • mockups