Database
O produto usa PostgreSQL com Django ORM. O diagrama abaixo representa os modelos de domínio próprios declarados nos apps do produto. User estende AbstractUser; as tabelas auxiliares padrão de autenticação e as tabelas de django-celery-beat não estão detalhadas no desenho.
Diagrama entidade-relacionamento
erDiagram
USER ||--o{ PROJECT : owns
PROJECT ||--o{ TASK : groups
PROJECT ||--o{ LABEL : defines
TASK }o--o{ LABEL : tagged
USER o|--o{ TASK : assigned
USER o|--o{ TASK : creates
USER ||--o{ EVENT : owns
TASK o|--o{ EVENT : relates
USER ||--o{ NOTIFICATION : receives
USER ||--o{ AI_SUGGESTION : receives
USER o|--o{ AUDIT_LOG : actor
Convenções físicas
As tabelas seguem o padrão Django <app>_<model> em minúsculas: accounts_user, accounts_log, dashboard_sugestaoia, projetos_projeto, tarefas_etiqueta, tarefas_tarefa, calendario_evento e notificacoes_notificacao.
As PKs são BigAutoField (PostgreSQL bigint). Campos Django DateTimeField usam timestamps com fuso por USE_TZ=True.
ForeignKeys criam índice automaticamente, salvo configuração contrária. A tabela intermediária M2M de etiquetas é gerada pelo Django e tem unicidade no par tarefa/etiqueta.
O usuário inclui os campos padrão herdados de AbstractUser e as relações padrão de grupos e permissões; abaixo estão os campos específicos da aplicação.
Dicionário de dados
NN indica null=False; N indica que o banco aceita NULL. Valores de blank controlam validação/formulários e não significam, por si só, nulabilidade.
accounts_user — extensão do usuário Django
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
username
varchar(150)
NN
—
Único, índice por restrição. Herdado de AbstractUser.
password
varchar(128)
NN
—
Hash de senha Django; herdado.
last_login
timestamptz
N
NULL
Herdado.
is_superuser
boolean
NN
false
Herdado.
first_name
varchar(150)
NN
string vazia
Herdado.
last_name
varchar(150)
NN
string vazia
Herdado.
email
varchar(254)
NN
string vazia
Herdado.
is_staff
boolean
NN
false
Herdado.
is_active
boolean
NN
true
Herdado.
date_joined
timestamptz
NN
horário atual
Herdado.
theme
varchar(20)
NN
dracula
Escolhas: dracula, dark, futuristic, light, glass.
avatar
varchar(100)
N
NULL
Caminho do arquivo; upload em avatars/; formulário permite vazio.
groups e user_permissions são relações M2M herdadas do Django, materializadas por tabelas auxiliares. accounts_log.usuario_id referencia este usuário.
accounts_log
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
usuario_id
bigint
N
NULL
FK accounts_user, SET NULL; índice automático.
acao
smallint
NN
—
Opções: 3 alteração, 4 inclusão, 5 exclusão, 6 importação, 7 exportação.
descricao
text
NN
—
Descrição da ação registrada.
data_hora
timestamptz
NN
horário atual
Índice explícito; ordenação decrescente no model.
dashboard_sugestaoia
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
usuario_id
bigint
NN
—
FK accounts_user, CASCADE; índice automático.
tipo
varchar(15)
NN
—
prioridades, plano_dia ou conflito.
conteudo
text
NN
—
Texto da sugestão.
criado_em
timestamptz
NN
preenchido na criação
Timestamp gerido pelo Django (auto_now_add).
projetos_projeto
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
nome
varchar(200)
NN
—
Nome do projeto.
descricao
text
NN
string vazia
Formulário pode deixar vazio.
status
varchar(20)
NN
planejado
planejado, ativo, concluido ou arquivado.
proprietario_id
bigint
NN
—
FK accounts_user, CASCADE; índice automático.
criado_em
timestamptz
NN
preenchido na criação
auto_now_add.
atualizado_em
timestamptz
NN
atualizado ao salvar
auto_now.
excluido
boolean
NN
false
Exclusão lógica.
tarefas_etiqueta
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
nome
varchar(100)
NN
—
Único em conjunto com projeto_id.
cor
varchar(7)
NN
#bd93f9
Valor hexadecimal #RRGGBB.
projeto_id
bigint
NN
—
FK projetos_projeto, CASCADE; índice automático.
Restrição: UNIQUE (nome, projeto_id), nome etiqueta_unico_por_projeto.
tarefas_tarefa
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
titulo
varchar(300)
NN
—
Título da tarefa.
descricao
text
NN
string vazia
Formulário pode deixar vazio.
prioridade
varchar(10)
NN
media
baixa, media, alta ou urgente.
status
varchar(15)
NN
pendente
pendente, em_andamento, concluida ou cancelada.
data_vencimento
date
N
NULL
Prazo opcional.
projeto_id
bigint
NN
—
FK projetos_projeto, CASCADE; índice automático.
responsavel_id
bigint
N
NULL
FK accounts_user, SET NULL; índice automático.
criado_por_id
bigint
N
NULL
FK accounts_user, SET NULL; índice automático.
criado_em
timestamptz
NN
preenchido na criação
auto_now_add.
atualizado_em
timestamptz
NN
atualizado ao salvar
auto_now.
excluida
boolean
NN
false
Exclusão lógica.
etiquetas
M2M
—
—
Junção automática com tarefas_etiqueta; par de FKs único.
Tabela intermediária gerada pelo ORM (tarefas_tarefa_etiquetas): id bigint PK; tarefa_id bigint FK para tarefas_tarefa; etiqueta_id bigint FK para tarefas_etiqueta; os dois campos FK são obrigatórios, indexados e únicos em conjunto.
calendario_evento
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
titulo
varchar(300)
NN
—
Título do evento.
descricao
text
NN
string vazia
Formulário pode deixar vazio.
data_inicio
timestamptz
NN
—
Início do evento.
data_fim
timestamptz
NN
—
Fim do evento.
cor
varchar(7)
NN
#bd93f9
Valor hexadecimal #RRGGBB.
usuario_id
bigint
NN
—
FK accounts_user, CASCADE; índice automático.
tarefa_id
bigint
N
NULL
FK tarefas_tarefa, SET NULL; índice automático.
criado_em
timestamptz
NN
preenchido na criação
auto_now_add.
excluido
boolean
NN
false
Exclusão lógica.
notificacoes_notificacao
Campo
Tipo PostgreSQL
Null
Default
FK / índice / regra
id
bigint
NN
sequência
PK.
usuario_id
bigint
NN
—
FK accounts_user, CASCADE; índice automático.
tipo
varchar(10)
NN
sistema
tarefa, ia ou sistema.
titulo
varchar(200)
NN
—
Título da notificação.
mensagem
text
NN
string vazia
Conteúdo opcional.
link
varchar(300)
NN
string vazia
Destino interno opcional.
lida
boolean
NN
false
Indicador de leitura.
criado_em
timestamptz
NN
preenchido na criação
auto_now_add.
Referências
Modelos Django: accounts/models.py, dashboard/models.py, projetos/models.py, tarefas/models.py, calendario/models.py, notificacoes/models.py.
Migrações: diretórios */migrations/ do repositório-fonte.
APIs
29 de outubro de 2026
23 de setembro de 2026