package dto import ( "strings" "time" "quyun/v2/app/requests" "quyun/v2/database/models" "quyun/v2/pkg/consts" ) // TenantContentFilter defines list query filters for tenant contents (superadmin). type TenantContentFilter struct { requests.Pagination `json:",inline" query:",inline"` requests.SortQueryFilter `json:",inline" query:",inline"` Keyword *string `json:"keyword,omitempty" query:"keyword"` Status *consts.ContentStatus `json:"status,omitempty" query:"status"` Visibility *consts.ContentVisibility `json:"visibility,omitempty" query:"visibility"` UserID *int64 `json:"user_id,omitempty" query:"user_id"` PublishedAtFrom *time.Time `json:"published_at_from,omitempty" query:"published_at_from"` PublishedAtTo *time.Time `json:"published_at_to,omitempty" query:"published_at_to"` CreatedAtFrom *time.Time `json:"created_at_from,omitempty" query:"created_at_from"` CreatedAtTo *time.Time `json:"created_at_to,omitempty" query:"created_at_to"` } func (f *TenantContentFilter) KeywordTrimmed() string { if f == nil || f.Keyword == nil { return "" } return strings.TrimSpace(*f.Keyword) } type SuperTenantContentItem struct { Content *models.Content `json:"content,omitempty"` Price *models.ContentPrice `json:"price,omitempty"` Owner *SuperUserLite `json:"owner,omitempty"` StatusDescription string `json:"status_description,omitempty"` VisibilityDescription string `json:"visibility_description,omitempty"` }