Oi Leonardo, tudo bem contigo? Espero que sim!
No Sequelize, infelizmente, não há um recurso inerente que permita declarar uma associação uma única vez e reutilizá-la diretamente. No entanto, você pode criar uma função que configure as associações para você e chame essa função sempre que precisar configurar as mesmas associações para diferentes modelos. Aqui está um exemplo prático de como você pode fazer isso:
function configurarAssociacoes(modelo, modelos) {
modelo.hasMany(modelos.Matricula, {
foreignKey: 'estudante_id',
as: 'matriculas' // Você pode passar um parâmetro para definir diferentes 'aliases'
});
}
// Usando a função para configurar associações para diferentes modelos
configurarAssociacoes(models.Pessoa, models);
configurarAssociacoes(models.Professor, models); // Supondo que professores também tenham matrículas
Essa abordagem permite que você mantenha o código de associação em um único lugar, facilitando a manutenção e reduzindo a repetição. Você pode expandir a função configurarAssociacoes
para incluir diferentes tipos de associações e passar parâmetros adicionais conforme necessário para personalizar as associações para diferentes modelos.
Espero ter ajudado!
Caso tenha dúvidas, fico à disposição.
Abraços e bons estudos!