vegapokerbot/internal/handler/fsm/machine/polls.go

42 lines
666 B
Go

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[uint64, PollState]
func init() {
cache, err := otter.MustBuilder[uint64, PollState](10_000).
Cost(func(key uint64, value PollState) uint32 {
return 1
}).
WithTTL(time.Hour * 24 * 7).
Build()
if err != nil {
panic(err)
}
Polls = cache
}