package machine import ( "gitea.neur0tx.site/Neur0toxine/vegapokerbot/internal/handler/fsm/machine/dto" "time" "github.com/maypok86/otter" ) type MemberVote struct { dto.Member Vote float32 } type PollResult struct { Max float32 Min float32 Avg float32 Halved float32 } type PollState struct { Members []dto.Member Votes []MemberVote Result PollResult } var Polls otter.Cache[int64, PollState] func init() { cache, err := otter.MustBuilder[int64, PollState](10_000). Cost(func(key int64, value PollState) uint32 { return 1 }). WithTTL(time.Hour * 24 * 7). Build() if err != nil { panic(err) } Polls = cache }