const { KeycloakRepository, UserRepository, UserAreaRepository } = require('../../src/repository/admin/SalesRepository.js'); const prisma = require('../../src/prisma/PrismaClient'); const { faker } = require('@faker-js/faker'); exports.seedSales = async () => { try { const provinces = await prisma.province.findMany(); if (provinces.length === 0) throw new Error('No provinces found'); const users = [ { username: 'sales1', email: 'sales1@example.com', firstname: 'Sales', lastname: 'One', password: 'Sales@123', }, { username: 'sales2', email: 'sales2@example.com', firstname: 'Sales', lastname: 'Two', password: 'Sales@123', }, { username: 'sales3', email: 'sales3@example.com', firstname: 'Sales', lastname: 'Three', password: 'Sales@123', }, ]; for (const user of users) { const shuffled = provinces.sort(() => 0.5 - Math.random()); const selectedProvinces = shuffled.slice(0, Math.floor(Math.random() * 3) + 1); const province_ids = selectedProvinces.map(p => p.id); user.province_ids = province_ids; const userId = await KeycloakRepository.createUser(user); await KeycloakRepository.assignSalesRole(userId); await UserRepository.createUser(userId, user); await UserAreaRepository.createMany(userId, province_ids); console.log(`✅ Seeded user ${user.username}`); } } catch (err) { console.error('❌ Failed to seed sales:', err.message); } };