import { faker } from '@faker-js/faker'; import { defaults, random, padStart } from 'lodash'; import { sub } from 'date-fns'; import type { DNC } from './index'; export function seedBuyer( default_data?: Pick, randomize_timestamp: boolean | Date = true ) { const company_id = Array.from(new Array(3), () => padStart(`${random(0, 999)}`, 3, '0')).join('-'); const data = defaults(default_data, { phone_number: faker.phone.number('#########'), company_id, }); return { ...data, createdAt: randomize_timestamp === true ? sub(new Date(), { days: random(0, 360) }) : randomize_timestamp === false ? new Date() : randomize_timestamp, }; } export function seedGlobal( default_data?: Pick, randomize_timestamp: boolean | Date = true ) { const source_codes = ['NG_HE_TEST', 'NG_HE_TEST1', 'NG_HE_TEST2']; const is_unknown = Math.random() > 0.9; const data = defaults(default_data, { phone_number: faker.phone.number('#########'), source_code: is_unknown ? null : faker.helpers.arrayElement(source_codes), vertical_id: is_unknown ? null : 'health_insurance', state: is_unknown ? null : faker.address.stateAbbr(), }); return { ...data, createdAt: randomize_timestamp === true ? sub(new Date(), { days: random(0, 360) }) : randomize_timestamp === false ? new Date() : randomize_timestamp, }; }