regiov / voluntarios

Website voluntarios.com.br
GNU General Public License v3.0
14 stars 12 forks source link

Melhorar esquema de gerenciamento de modelos de notificações #73

Open regiov opened 9 months ago

regiov commented 9 months ago

O sistema dispõe de um app chamado notification cuja ideia é armazenar em banco e permitir a edição via interface administrativa de templates usados em notificações do sistema. Hoje esse app possui apenas dois modelos: Message (que contém tanto os metadados quanto o template da notificação em questão) e Event (evento de notificação para armazenar histórico de notificações enviadas). Esse esquema pode ser melhorado dividindo o modelo Message em dois: NotificationType (código, descrição) e NotificationTemplate (type_id, subject, content, created_by, created_on, current - booleano). Cada tipo de notificação pode ter mais de uma mensagem associada como forma de armazenar o histórico de templates utilizados, sendo apenas uma a corrente, portanto ao marcar uma mensagem como sendo a corrente, todas as outras daquele tipo devem passar para corrente = False. Outra abordagem possível seria permitir a edição apenas do template corrente e ao editar gravar automaticamente a versão anterior como histórico, com atributos adicionais para indicar que aquele template foi usado em determinado período. Neste caso não haveria necessidade do atributo "corrente", pois este seria o único cuja data final de uso estaria em aberto.