vegapokerbot/internal/handler/store/polls.go

42 lines
646 B
Go

package store
import (
"gitea.neur0tx.site/Neur0toxine/vegapokerbot/internal/handler/util"
"time"
"github.com/maypok86/otter"
)
type MemberVote struct {
util.Member
Vote float32
}
type PollResult struct {
Max float32
Min float32
Avg float32
Halved float32
}
type PollState struct {
Members []util.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
}