63 lines
2.0 KiB
JavaScript
63 lines
2.0 KiB
JavaScript
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,
|
|
};
|