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} }