45 lines
1.6 KiB
Go
45 lines
1.6 KiB
Go
package dto
|
||
|
||
// ---------- 收藏 ----------
|
||
|
||
// 收藏粒度:与 model.Favorite.Kind 对应。
|
||
const (
|
||
FavoriteKindGallery = "gallery" // 整篇图集(runway / street)
|
||
FavoriteKindImage = "image" // 单张图片(runway_image / snap_image)
|
||
)
|
||
|
||
// FavoriteItem 对外返回的收藏项:id 即 target_uid,便于前端直接比对卡片 id。
|
||
//
|
||
// kind=image 时 image_url 是这一张图、parent_uid 是所属图集,前端用这两项渲染与回跳;
|
||
// kind=gallery 时沿用 cover / title / brand 快照。
|
||
type FavoriteItem struct {
|
||
ID string `json:"id"`
|
||
Type string `json:"type"`
|
||
Title string `json:"title"`
|
||
Cover string `json:"cover"`
|
||
Brand string `json:"brand"`
|
||
AddedAt uint32 `json:"added_at"`
|
||
Kind string `json:"kind"`
|
||
ImageURL string `json:"image_url"`
|
||
ParentUID string `json:"parent_uid"`
|
||
}
|
||
|
||
// FavoriteAdd 添加收藏请求体。target_uid 为前端卡片的 id(图集或图片的编码串)。
|
||
type FavoriteAdd struct {
|
||
TargetType string `json:"target_type" binding:"required"` // runway | street | runway_image | snap_image
|
||
TargetUID string `json:"target_uid" binding:"required"`
|
||
Title string `json:"title"`
|
||
Cover string `json:"cover"`
|
||
Brand string `json:"brand"`
|
||
|
||
// 图片收藏可选字段。kind 留空时由 target_type 推断(*_image → image,否则 gallery)。
|
||
Kind string `json:"kind"`
|
||
ImageURL string `json:"image_url"`
|
||
ParentUID string `json:"parent_uid"`
|
||
}
|
||
|
||
// FavoriteCheck 批量查询哪些 target_uid 已收藏(列表页打勾用,与收藏总量解耦)。
|
||
type FavoriteCheck struct {
|
||
IDs []string `json:"ids" binding:"required"`
|
||
}
|