import dotenv from 'dotenv'; import path from 'path'; import { fileURLToPath } from 'url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); dotenv.config({ path: path.join(__dirname, '../.env') }); import db from '../src/database/models/index.js'; async function run() { try { console.log('Associations for User:'); const userAssoc = db.User.associations; Object.keys(userAssoc).forEach(key => { console.log(`- ${key}: ${userAssoc[key].associationType} to ${userAssoc[key].target.name}`); }); console.log('\nTrying findAll with managedAsmDistricts...'); await db.User.findAll({ limit: 1, include: [{ model: db.District, as: 'managedAsmDistricts' }] }); console.log('Success with managedAsmDistricts'); console.log('\nTrying findAll with managedAreaDistricts...'); await db.User.findAll({ limit: 1, include: [{ model: db.District, as: 'managedAreaDistricts' }] }); console.log('Success with managedAreaDistricts'); console.log('\nTrying FULL query from getASMs...'); await db.User.findAll({ where: { roleCode: { [db.Sequelize.Op.in]: ['ASM', 'AREA SALES MANAGER', 'DD-AM', 'DD AM'] }, isActive: true }, include: [ { model: db.UserRole, as: 'userRoles', where: { isActive: true }, required: false, include: [{ model: db.Role, as: 'role', where: { roleCode: { [db.Sequelize.Op.in]: ['ASM', 'DD-AM', 'DD AM'] } } }] }, { model: db.District, as: 'managedAsmDistricts', include: [ { model: db.State, as: 'state', attributes: ['id', 'name'] }, { model: db.Region, as: 'region', attributes: ['id', 'name'] }, { model: db.Zone, as: 'zone', attributes: ['id', 'name'] } ] }, { model: db.District, as: 'managedAreaDistricts', include: [ { model: db.State, as: 'state', attributes: ['id', 'name'] }, { model: db.Region, as: 'region', attributes: ['id', 'name'] }, { model: db.Zone, as: 'zone', attributes: ['id', 'name'] } ] } ], }); console.log('Success with FULL query'); process.exit(0); } catch (error) { console.error('Error:', error); process.exit(1); } } run();