in helpers/sample-cc-generator/main.go [141:169]
func generateEntry(faker *gofakeit.Faker) entry {
e := entry{}
minIssueT, err := time.Parse("2006-01-02", fmt.Sprintf("%s-01-01", minIssueYear))
if err != nil {
log.Fatal(err)
}
maxIssueT, err := time.Parse("2006-01-02", fmt.Sprintf("%s-01-01", maxIssueYear))
if err != nil {
log.Fatal(err)
}
// issued between min/max issue time
issueTime := faker.DateRange(minIssueT, maxIssueT)
e.issueDate = issueTime.Format("01/2006")
e.cardHolderName = faker.Name()
cc := faker.CreditCard()
e.cvv = cc.Cvv
e.cardNumber = cc.Number
e.cardTypeFullName = cc.Type
e.cardTypeCode = ccShortCode(cc.Type)
// expiry is 3-5 years after issue
expiryTime := faker.DateRange(issueTime.AddDate(3, 0, 0), issueTime.AddDate(5, 0, 0))
e.expiryDate = expiryTime.Format("01/2006")
e.issuingBank = issueBank(faker, cc.Type)
e.billingDate = strconv.Itoa(faker.Number(1, 27))
// 4 digit num
e.cardPin = strconv.Itoa(faker.Number(1000, 9999))
e.limit = strconv.Itoa(faker.Number(minCreditLimit, maxCreditLimit))
return e
}