Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

92 lines
1.4 KiB
Go

package searcher
import (
"time"
"91porn-server/common/timeutil/timerange"
"91porn-server/models/v/tonerecomod"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// KeyWorder KeyWorder
type KeyWorder interface {
Get() interface{}
}
// Keyword Keyword
type Keyword struct {
Word string
}
func (s *Keyword) Get() interface{} {
return s.Word
}
// StringList StringList
type StringList struct {
Words []string
}
func (s *StringList) Get() interface{} {
return s.Words
}
// ObjectList ObjectList
type ObjIDList struct {
IDList []primitive.ObjectID
}
func (o *ObjIDList) Get() interface{} {
return o.IDList
}
// ObjectList ObjectList
type ObjID struct {
ID primitive.ObjectID
}
func (o *ObjID) Get() interface{} {
return o.ID
}
// ThemeList ThemeList
type ThemeList struct {
Themes []tonerecomod.ThemeType
}
func (s *ThemeList) Get() interface{} {
return s.Themes
}
// TimeRange TimeRange
type TimeRange struct {
Range timerange.TimeRange
}
func (t *TimeRange) Get() interface{} {
return t.Range
}
func NewTimeRange(start, end time.Time) KeyWorder {
timeRange := timerange.TimeRange{
Head: start,
Tail: end,
}
return &TimeRange{timeRange}
}
// SumDate SumDate
type SumDate struct {
Date time.Time
}
func (t *SumDate) Get() interface{} {
return t.Date
}
func NewSumDate(position time.Time) KeyWorder {
sumDate := timerange.LocDayRange(position).Head
return &SumDate{sumDate}
}