pending
This commit is contained in:
43
backend/app/http/tenant/dto/content.go
Normal file
43
backend/app/http/tenant/dto/content.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"quyun/v2/app/requests"
|
||||
"quyun/v2/database/models"
|
||||
)
|
||||
|
||||
type ContentListFilter struct {
|
||||
// Pagination controls paging parameters (page/limit).
|
||||
requests.Pagination `json:",inline" query:",inline"`
|
||||
// Keyword filters by title keyword (LIKE).
|
||||
Keyword *string `json:"keyword,omitempty" query:"keyword"`
|
||||
}
|
||||
|
||||
// ContentItem is a list item with price snapshot and access indicator for current user.
|
||||
type ContentItem struct {
|
||||
// Content is the content entity.
|
||||
Content *models.Content `json:"content,omitempty"`
|
||||
// Price is the current price settings for the content (may be nil if not set).
|
||||
Price *models.ContentPrice `json:"price,omitempty"`
|
||||
// HasAccess indicates whether current user can access main assets (free/owner/purchased).
|
||||
HasAccess bool `json:"has_access"`
|
||||
}
|
||||
|
||||
// ContentDetail is the detail payload with price snapshot and access indicator for current user.
|
||||
type ContentDetail struct {
|
||||
// Content is the content entity.
|
||||
Content *models.Content `json:"content,omitempty"`
|
||||
// Price is the current price settings for the content (may be nil if not set).
|
||||
Price *models.ContentPrice `json:"price,omitempty"`
|
||||
// HasAccess indicates whether current user can access main assets (free/owner/purchased).
|
||||
HasAccess bool `json:"has_access"`
|
||||
}
|
||||
|
||||
// ContentAssetsResponse returns assets for either preview or main role.
|
||||
type ContentAssetsResponse struct {
|
||||
// Content is the content entity.
|
||||
Content *models.Content `json:"content,omitempty"`
|
||||
// Assets is the list of media assets for the requested role (preview/main).
|
||||
Assets []*models.MediaAsset `json:"assets,omitempty"`
|
||||
// PreviewSeconds indicates the max preview duration (only meaningful for preview response).
|
||||
PreviewSeconds int32 `json:"preview_seconds,omitempty"`
|
||||
}
|
||||
Reference in New Issue
Block a user