import faker from 'faker'; import kommuner from './kommuner.js'; import languages from './languages.js'; import organizations from './organizations.js'; import tjanster from './tjanster.js'; import utforandeVerksamheter from './utforande-verksamheter.js'; faker.locale = 'sv'; const TJANSTER = tjanster.generate(); const SUPORTLANGUAGES = languages.generate(); const TRACK = [{ kod: 'A012SP1', name: 'NivÄ A: Kundval Rusta och matcha' }]; const ORGANIZATIONS = organizations.generate(); const UTFORANDEVERKSAMHETER = utforandeVerksamheter.generate(); const KOMMUNER = kommuner.generate(); const FREKVENSER = ['25%', '50%', '75%', '100%']; function generateAvrop(amount = 10, deltagare, handledare) { const avrop = []; for (let i = 1; i <= amount; ++i) { const organization = ORGANIZATIONS[Math.floor(Math.random() * ORGANIZATIONS.length)]; const utforandeVerksamhet = UTFORANDEVERKSAMHETER[Math.floor(Math.random() * UTFORANDEVERKSAMHETER.length)]; const kommun = KOMMUNER[Math.floor(Math.random() * KOMMUNER.length)]; const tjanst = TJANSTER[Math.floor(Math.random() * TJANSTER.length)]; const track = TRACK[Math.floor(Math.random() * TRACK.length)]; const currentDeltagare = deltagare[i - 1]; const utforandeAdress = utforandeVerksamhet.adresser[0]; avrop.push({ id: faker.datatype.uuid(), fornamn: currentDeltagare.contact.fornamn, efternamn: currentDeltagare.contact.efternamn, deltagare: `${currentDeltagare.contact.fornamn} ${currentDeltagare.contact.efternamn}`, genomforandeReferens: faker.datatype.number({ min: 100000000, max: 999999999 }), orgId: faker.datatype.uuid(), leverantorId: faker.datatype.number({ min: 1000, max: 99999 }), organisationsnummer: organization.organizationNumber, utforandeVerksamhetId: utforandeVerksamhet.utforandeVerksamhetId, utforandeverksamhet: utforandeVerksamhet.namn, kommunKod: kommun.id, kommun: kommun.label, utforandeAdressId: utforandeAdress.adressId, adress: utforandeAdress.adressrad, ordernummer: `AKTTEST-${faker.datatype.number({ min: 10000, max: 99999 })}`, bokningsId: faker.datatype.number({ min: 100000, max: 999999 }), personnummer: currentDeltagare.personnummer, sokandeId: currentDeltagare.sokandeId, tjanstekod: tjanst.id, tjansteNamn: tjanst.label, deltagandeGrad: FREKVENSER[Math.floor(Math.random() * FREKVENSER.length)], startdatumAvrop: faker.date.recent(), slutdatumAvrop: faker.date.future(), aktnummerDiariet: `Af-2021/0000 ${faker.datatype.number({ min: 1000, max: 9999 })}`, tolkbehov: currentDeltagare.translator.sprak.beskrivning, sprakstod: SUPORTLANGUAGES[Math.floor(Math.random() * SUPORTLANGUAGES.length)].beskrivning, sparkod: track.kod, sparNamn: track.name, handledareCiamUserId: null, handledare: null, recievedTimestamp: faker.date.recent(), hasAvbrott: currentDeltagare.hasAvbrott, }); } console.info('Avrop generated...'); return avrop; } export default { generate: generateAvrop, };