package duration

import (
	"time"
)

const (
	// UserInteraction is a duration that normal user interaction should finish within.
	// https://cheatsheetseries.owasp.org/cheatsheets/Forgot_Password_Cheat_Sheet.html#step-3-send-a-token-over-a-side-channel
	UserInteraction = 20 * time.Minute
	// Consent is a duration that consent should finish within.
	Consent = 5 * time.Minute
	// VisitorIDLifeTime is a duration that indicate the life time of VisitorID
	// VisitorID will be generated when user visit the web app
	// The unique page views aggregates page views that are generated by the same VisitorID
	VisitorIDLifeTime = 20 * time.Minute
	// The expiration of the analytic redis keys
	// Expiration will be set after saving the count to the audit db
	AnalyticRedisKeyExpiration = 180 * 24 * time.Hour
	// Short is a duration for short living things.
	Short = 5 * time.Minute
	// WebError is a duration for storing web error.
	WebError = 1 * time.Minute
	// PerMinute is 1 minute.
	PerMinute = 1 * time.Minute
	// PerHour is 1 hour.
	PerHour = 1 * time.Hour
	// ClockSkew is the duration of acceptable clock skew.
	ClockSkew = 5 * time.Minute
	// Long is a duration for something that persists for a certain time.
	Long = 90 * 24 * time.Hour
)
