import faker from 'faker'; import agencies from './agencies.js'; import kommuner from './kommuner.js'; import languages from './languages.js'; import services from './services.js'; import chooseRandom from './utils/choose-random.util.js'; faker.locale = 'sv'; const SERVICES = services.generate(); const KOMMUN = kommuner.generate(); const AGENCIES = agencies.generate(); const STATUSES = [true, false]; const LANGUAGES = languages.generate(); const AUTHORISATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ekonomi']; function generateStaff(amount = 10) { const staff = []; for (let i = 1; i <= amount; ++i) { const person = { id: faker.random.uuid(), staffId: faker.random.number(), firstName: faker.name.firstName(), lastName: faker.name.lastName(), kommun: KOMMUN[Math.floor(Math.random() * KOMMUN.length)].kommun, active: STATUSES[Math.floor(Math.random() * STATUSES.length)], service: SERVICES[Math.floor(Math.random() * SERVICES.length)].name, languages: [ LANGUAGES.find(language => language.name === 'Svenska'), ...chooseRandom(LANGUAGES, faker.random.number(3)), ], ssn: `${faker.date.between('1950', '2000').toISOString().split('T')[0].replaceAll('-', '')}-${faker.random.number( { min: 1000, max: 9999, } )}`, phone: `07${faker.random.number(9)}-${faker.random.number({ min: 1000000, max: 9999999 })}`, email: faker.internet.email(), authorisations: chooseRandom(AUTHORISATIONS, faker.random.number(3)), outOfOffice: STATUSES[Math.floor(Math.random() * STATUSES.length)] ? [ { start: new Date('2021-07-12'), end: new Date('2021-07-24'), }, ] : [], agencies: chooseRandom(AGENCIES, faker.random.number(3)), }; staff.push({ ...person, fullName: `${person.firstName} ${person.lastName}` }); } console.info('Staff generated...'); return staff; } export default { generate: generateStaff, };