func generateEntry()

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
}