1package main
2
3import (
4 "fmt"
5 "math/rand"
6
7 "github.com/go-faker/faker/v4"
8)
9
10// Generator is a function that returns a random string.
11type Generator func() string
12
13// Generators is a map of generator functions that can be used for variable substitution.
14var Generators = map[string]Generator{
15 "int": randomInt,
16 "phone": randomPhoneNumber,
17 "datetime": randomDateTime,
18 "lat": randomLat,
19 "long": randomLong,
20 "real_address": randomRealAddress,
21 "cc_number": randomCCNumber,
22 "cc_type": randomCCType,
23 "email": randomEmail,
24 "domain_name": randomDomainName,
25 "ipv4": randomIPV4,
26 "ipv6": randomIPV6,
27 "password": randomPassword,
28 "jwt": randomJWT,
29 "phone_number": randomPhoneNumber,
30 "mac_address": randomMacAddress,
31 "url": randomURL,
32 "username": randomUsername,
33 "toll_free_number": randomTollFreeNumber,
34 "e_164_phone_number": randomE164PhoneNumber,
35 "title_male": randomTitleMale,
36 "title_female": randomTitleFemale,
37 "first_name": randomFirstName,
38 "first_name_male": randomFirstNameMale,
39 "first_name_female": randomFirstNameFemale,
40 "last_name": randomLastName,
41 "name": randomName,
42 "unix_time": randomUnixTime,
43 "date": randomDate,
44 "time": randomTime,
45 "month_name": randomMonthName,
46 "year": randomYear,
47 "day_of_week": randomDayOfWeek,
48 "day_of_month": randomDayOfMonth,
49 "timestamp": randomTimestamp,
50 "century": randomCentury,
51 "timezone": randomTimeZone,
52 "time_period": randomTimePeriod,
53 "word": randomWord,
54 "sentence": randomSentence,
55 "paragraph": randomParagraph,
56 "currency": randomCurrency,
57 "amount": randomAmount,
58 "amount_with_currency": randomAmountWithCurrency,
59 "uuid_hyphenated": randomUUIDHyphenated,
60 "uuid_digit": randomUUIDDigit,
61}
62
63func randomInt() string {
64 return fmt.Sprintf("%d", rand.Intn(1000000))
65}
66
67func randomName() string {
68 return faker.Name()
69}
70
71func randomEmail() string {
72 return faker.Email()
73}
74
75func randomUsername() string {
76 return faker.Username()
77}
78
79func randomPassword() string {
80 return faker.Password()
81}
82
83func randomURL() string {
84 return faker.URL()
85}
86
87func randomWord() string {
88 return faker.Word()
89}
90
91func randomSentence() string {
92 return faker.Sentence()
93}
94
95func randomPhoneNumber() string {
96 return faker.Phonenumber()
97}
98
99func randomDateTime() string {
100 return faker.TimeString()
101}
102
103func randomLat() string {
104 return fmt.Sprintf("%f", faker.Latitude())
105}
106
107func randomLong() string {
108 return fmt.Sprintf("%f", faker.Longitude())
109}
110
111func randomRealAddress() string {
112 addr := faker.GetRealAddress()
113 return fmt.Sprintf("%s, %s, %s %s", addr.Address, addr.City, addr.State, addr.PostalCode)
114}
115
116func randomCCNumber() string {
117 return faker.CCNumber()
118}
119
120func randomCCType() string {
121 return faker.CCType()
122}
123
124func randomDomainName() string {
125 return faker.DomainName()
126}
127
128func randomIPV4() string {
129 return faker.IPv4()
130}
131
132func randomIPV6() string {
133 return faker.IPv6()
134}
135
136func randomJWT() string {
137 return faker.Jwt()
138}
139
140func randomMacAddress() string {
141 return faker.MacAddress()
142}
143
144func randomTollFreeNumber() string {
145 return faker.TollFreePhoneNumber()
146}
147
148func randomE164PhoneNumber() string {
149 return faker.E164PhoneNumber()
150}
151
152func randomTitleMale() string {
153 return faker.TitleMale()
154}
155
156func randomTitleFemale() string {
157 return faker.TitleFemale()
158}
159
160func randomFirstName() string {
161 return faker.FirstName()
162}
163
164func randomFirstNameMale() string {
165 return faker.FirstNameMale()
166}
167
168func randomFirstNameFemale() string {
169 return faker.FirstNameFemale()
170}
171
172func randomLastName() string {
173 return faker.LastName()
174}
175
176func randomUnixTime() string {
177 return fmt.Sprintf("%d", faker.UnixTime())
178}
179
180func randomDate() string {
181 return faker.Date()
182}
183
184func randomTime() string {
185 return faker.TimeString()
186}
187
188func randomMonthName() string {
189 return faker.MonthName()
190}
191
192func randomYear() string {
193 return faker.YearString()
194}
195
196func randomDayOfWeek() string {
197 return faker.DayOfWeek()
198}
199
200func randomDayOfMonth() string {
201 return faker.DayOfMonth()
202}
203
204func randomTimestamp() string {
205 return faker.Timestamp()
206}
207
208func randomCentury() string {
209 return faker.Century()
210}
211
212func randomTimeZone() string {
213 return faker.Timezone()
214}
215
216func randomTimePeriod() string {
217 return faker.Timeperiod()
218}
219
220func randomParagraph() string {
221 return faker.Paragraph()
222}
223
224func randomCurrency() string {
225 return faker.Currency()
226}
227
228func randomAmount() string {
229 return fmt.Sprintf("%d.%02d", rand.Intn(1000), rand.Intn(100))
230}
231
232func randomAmountWithCurrency() string {
233 return faker.AmountWithCurrency()
234}
235
236func randomUUIDHyphenated() string {
237 return faker.UUIDHyphenated()
238}
239
240func randomUUIDDigit() string {
241 return faker.UUIDDigit()
242}