feat: convert to nextjs
This commit is contained in:
115
utils/generateConsumerSeed.ts
Normal file
115
utils/generateConsumerSeed.ts
Normal file
@@ -0,0 +1,115 @@
|
||||
import moment, { Moment } from 'moment';
|
||||
|
||||
const PROVINCE_CODES = [
|
||||
'00', // Roma
|
||||
'04', // Latina
|
||||
'10', // Torino
|
||||
'12', // Cuneo
|
||||
'16', // Genova
|
||||
'20', // Milano
|
||||
'24', // Bergamo
|
||||
'25', // Brescia
|
||||
'30', // Venezia
|
||||
'31', // Treviso
|
||||
'35', // Padova
|
||||
'40', // Bologna
|
||||
'45', // Rovigo
|
||||
'47', // Forli-Cesena
|
||||
'48', // Ravenna
|
||||
'50', // Firenze
|
||||
'51', // Pistoia
|
||||
'52', // Arezzo
|
||||
'53', // Siena
|
||||
'54', // Massa-Carrara
|
||||
'55', // Lucca
|
||||
'56', // Pisa
|
||||
'57', // Livorno
|
||||
'58', // Grosseto
|
||||
'60', // Ancona
|
||||
'61', // Pesaro
|
||||
'63', // Ascoli Piceno
|
||||
'65', // Pescara
|
||||
'66', // Chieti
|
||||
'67', // L'Aquila
|
||||
'70', // Bari
|
||||
'71', // Foggia
|
||||
'72', // Brindisi
|
||||
'73', // Lecce
|
||||
'74', // Taranto
|
||||
'75', // Matera
|
||||
'80', // Napoli
|
||||
'81', // Caserta
|
||||
'82', // Benevento
|
||||
'83', // Avellino
|
||||
'84', // Salerno
|
||||
'87', // Cosenza
|
||||
'88', // Catanzaro
|
||||
'89', // Reggio Calabria
|
||||
'90', // Palermo
|
||||
'91', // Trapani
|
||||
'92', // Agrigento
|
||||
'93', // Caltanissetta
|
||||
'94', // Enna
|
||||
'95', // Catania
|
||||
'96', // Siracusa
|
||||
'97', // Ragusa
|
||||
'98' // Messina
|
||||
];
|
||||
|
||||
export function generateRandomCAP(): string {
|
||||
const provinceCode =
|
||||
PROVINCE_CODES[Math.floor(Math.random() * PROVINCE_CODES.length)];
|
||||
|
||||
const lastThreeDigits = Math.floor(Math.random() * 1000)
|
||||
.toString()
|
||||
.padStart(3, '0');
|
||||
|
||||
return `${provinceCode}${lastThreeDigits}`;
|
||||
}
|
||||
|
||||
function generateLetters(): string {
|
||||
const consonants = 'BCDFGLMNPRSTVZ';
|
||||
const vowels = 'AEIOU';
|
||||
|
||||
let result = '';
|
||||
|
||||
const consonantCount = 4 + Math.floor(Math.random() * 2);
|
||||
for (let i = 0; i < consonantCount; i++) {
|
||||
result += consonants[Math.floor(Math.random() * consonants.length)];
|
||||
}
|
||||
|
||||
const extraVowels = 3 + Math.floor(Math.random() * 2);
|
||||
for (let i = 0; i < extraVowels; i++) {
|
||||
result += vowels[Math.floor(Math.random() * vowels.length)];
|
||||
}
|
||||
|
||||
return result
|
||||
.split('')
|
||||
.sort(() => Math.random() - 0.5)
|
||||
.join('');
|
||||
}
|
||||
|
||||
function generateBirthYear(): Moment {
|
||||
const currentYear = moment().year();
|
||||
const minYear = currentYear - 50;
|
||||
const maxYear = currentYear - 20;
|
||||
const year = Math.floor(Math.random() * (maxYear - minYear) + minYear);
|
||||
|
||||
const startDate = moment([year, 0, 1]); // January 1st
|
||||
const endDate = moment([year, 11, 31]); // December 31st
|
||||
|
||||
const startTimestamp = startDate.valueOf();
|
||||
const endTimestamp = endDate.valueOf();
|
||||
const randomTimestamp =
|
||||
startTimestamp + Math.random() * (endTimestamp - startTimestamp);
|
||||
|
||||
return moment(randomTimestamp).startOf('day');
|
||||
}
|
||||
|
||||
export function generateConsumerSeed() {
|
||||
const letters = generateLetters();
|
||||
const birthday = generateBirthYear();
|
||||
const zipCode = generateRandomCAP();
|
||||
|
||||
return { letters, birthday, zipCode };
|
||||
}
|
||||
Reference in New Issue
Block a user