Open Yudi opened 4 months ago
Arquivo schema disponível em https://github.com/cacic-fct/fct-app/blob/angular-backend/backend/schema/schema.erd Para visualizar, utilize a extensão ERD Editor no VS Code.
Primeira versão completa do schema no commit 026c0d0d549ce23bb47ae852ef249b0eeb8e68d9. Ainda é necessário verificar se ele contempla tudo o que é necessário; e ver como funciona a autenticação via Supabase.
Assim que cumprir essas pendências, passo para verificação dos demais membros. Aceito feedback intermediário, claro, caso alguém se disponha.
@GuiCT - que queria remodelar os dados – gostaria de dar alguma sugestão?
Renomeei todos os visible_for_status
para visible_for_associate_status
, para evitar ambiguidades com "status".
Adicionei short_description
ao event, pois é diferente do description
.
Único campo phone
seguindo o formato internacional ao invés de DDD e número
Como o sistema é pequeno e são esperados poucos usuários, tentei normalizar a base ao máximo. Caso seja previsto um impacto na eficiência, podemos mudar.
O servidor será robusto. Está certo em priorizar legibilidade.
Para otimizar o banco, assumi a organização e comportamento da SECOMPP como é atualmente.
Acredito que esteja suficientemente agnóstico.
payment_info — markdown ou html
Melhor não injetar HTML, pra evitar ter que ficar validando e fazer sanitize. Só Markdown é suficiente pra essa aplicação.
Falta contemplar o Remote Config, que eu esqueci de colocar no comentário inicial da issue, mas pode deixar para depois, porque não é urgente.
E a armazenagem dos certificados, que pode ser deixada para depois da SECOMPP.
Adicionada a informação de que CREATED_BY
e UPDATED_BY
devem ser informações comuns
Na tabela user
:
name
Na tabela unesp_user
associate_status
de int
para text
Penso que devemos usar
text
ao invés deint
para facilitar a legibilidade.tier
eauth_level
Na tabela event
:
visible_for_associate_status
de array int
para array text
Adicionadas as tabelas:
certificate_templates
— Informações comuns de uma série de certificados. Ex: todos os certificados da SECOMPP têm o mesmo texto, então armazenamos uma só vezcertificates
— Armazena a data de emissão e os dados pessoais da pessoa certificada de maneira "imutável", já que permitimos a edição do nome da contacertificate_errors
— Armazena certificados que tiveram erros ao serem emitidos configs
— Substituição do Remote Config, para configurações rápidas que não requerem atualização do código do aplicativoplaces
— Lugares usados na lista da página de criação de um eventoTabelas marcadas como Draft, pois precisam de revisão pelo @Salies.
Alterada relação unesp_user 1-n claims
para user 1-n claims
Penso que precisaremos trabalhar com permissões mais granulares ao invés de claims brandas.
Exemplo 1: pessoas que estão escaneando presença não deveriam ter permissão para ver informações de outros usuários ou criar, editar ou deletar eventos. Exemplo 2: Quem está ministrando um minicurso poderia ter a permissão de editar o seu evento, escanear presenças e visualizar os inscritos.
Isso se tornará crítico, pois haverá muitas pessoas ajudando em diferentes áreas agora que a SECOMPP conta para as horas de extensão obrigatórias.
Esquema atual do Firestore disponível em https://cacic-fct.github.io/fct-app-docs
Esquema movido para a branch angular-backend
https://github.com/cacic-fct/fct-app/blob/angular-backend/backend/schema/schema.erd
Novas especificações adicionadas no comentário principal da issue
Esquema atual do Firestore disponível em https://docs.fctapp.cacic.dev.br
O esquema novo deve contemplar o máximo possível dos campos do atuais, para paridade.
Além disso, deve contemplar o Remote config.
Remote config
O Remote Config é usado para configurar o aplicativo de maneira dinâmica e remota, sem precisar fazer commits ou um novo release.
Correções
Erros do esquema do Firestore que devem ser corrigidos: