1
resposta

É possivel não repetir associações ?

No caso de eu ter inumeras associações, teria um jeito de eu conseguir colocar as associações que se repetissem uma unica vez e eu estar apenas adicionando cada escopo ? Exemplo de element repetido:

//Exemplo de element repetido

Pessoa.hasMany(models.Matricula, {
        foreignKey: 'estudante_id',
}
1 resposta

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!