92 lines
1.4 KiB
Go
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}
|
|
}
|