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}