package member import "strings" // RedisKey is the member module key prefix. type RedisKey string const ( OTPChallengeRedisKey RedisKey = "member:otp:challenge" VerifyRateRedisKey RedisKey = "member:verify:rate" VerifyDailyRedisKey RedisKey = "member:verify:daily" ) func (key RedisKey) With(parts ...string) RedisKey { if len(parts) == 0 { return key } return RedisKey(string(key) + ":" + strings.Join(parts, ":")) } func (key RedisKey) String() string { return string(key) } func GetOTPChallengeRedisKey(challengeID string) string { return OTPChallengeRedisKey.With(challengeID).String() } func GetOTPAttemptsRedisKey(challengeID string) string { return OTPChallengeRedisKey.With(challengeID, "attempts").String() } func GetVerifyRateRedisKey(tenantID, uid, kind string) string { return VerifyRateRedisKey.With(tenantID, uid, kind).String() } func GetVerifyDailyRedisKey(tenantID, uid, kind string) string { return VerifyDailyRedisKey.With(tenantID, uid, kind).String() }