... | ... | @@ -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).
|
|
|
|
|
|
 |
|
|
\ No newline at end of file |
|
|
 |
|
|
\ No newline at end of file |