147 lines
7.0 KiB
Go
147 lines
7.0 KiB
Go
package responses
|
||
|
||
import "time"
|
||
|
||
// PackageItemResponse 组合包项目响应
|
||
type PackageItemResponse struct {
|
||
ID string `json:"id" comment:"项目ID"`
|
||
ProductID string `json:"product_id" comment:"子产品ID"`
|
||
ProductCode string `json:"product_code" comment:"子产品编号"`
|
||
ProductName string `json:"product_name" comment:"子产品名称"`
|
||
SortOrder int `json:"sort_order" comment:"排序"`
|
||
Price float64 `json:"price" comment:"子产品价格"`
|
||
CostPrice float64 `json:"cost_price" comment:"子产品成本价"`
|
||
}
|
||
|
||
// ProductInfoResponse 产品详情响应
|
||
type ProductInfoResponse struct {
|
||
ID string `json:"id" comment:"产品ID"`
|
||
OldID *string `json:"old_id,omitempty" comment:"旧产品ID"`
|
||
Name string `json:"name" comment:"产品名称"`
|
||
Code string `json:"code" comment:"产品编号"`
|
||
Description string `json:"description" comment:"产品简介"`
|
||
Content string `json:"content" comment:"产品内容"`
|
||
CategoryID string `json:"category_id" comment:"一级分类ID"`
|
||
SubCategoryID *string `json:"sub_category_id,omitempty" comment:"二级分类ID"`
|
||
Price float64 `json:"price" comment:"产品价格"`
|
||
IsEnabled bool `json:"is_enabled" comment:"是否启用"`
|
||
IsPackage bool `json:"is_package" comment:"是否组合包"`
|
||
IsSubscribed *bool `json:"is_subscribed,omitempty" comment:"当前用户是否已订阅"`
|
||
// UI组件相关字段
|
||
SellUIComponent bool `json:"sell_ui_component" comment:"是否出售UI组件"`
|
||
UIComponentPrice float64 `json:"ui_component_price" comment:"UI组件销售价格(组合包使用)"`
|
||
|
||
// SEO信息
|
||
SEOTitle string `json:"seo_title" comment:"SEO标题"`
|
||
SEODescription string `json:"seo_description" comment:"SEO描述"`
|
||
SEOKeywords string `json:"seo_keywords" comment:"SEO关键词"`
|
||
|
||
// 关联信息
|
||
Category *CategoryInfoResponse `json:"category,omitempty" comment:"一级分类信息"`
|
||
SubCategory *SubCategoryInfoResponse `json:"sub_category,omitempty" comment:"二级分类信息"`
|
||
|
||
// 组合包信息
|
||
PackageItems []*PackageItemResponse `json:"package_items,omitempty" comment:"组合包项目列表"`
|
||
|
||
CreatedAt time.Time `json:"created_at" comment:"创建时间"`
|
||
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||
}
|
||
|
||
// ProductListResponse 产品列表响应
|
||
type ProductListResponse struct {
|
||
Total int64 `json:"total" comment:"总数"`
|
||
Page int `json:"page" comment:"页码"`
|
||
Size int `json:"size" comment:"每页数量"`
|
||
Items []ProductInfoResponse `json:"items" comment:"产品列表"`
|
||
}
|
||
|
||
// ProductSearchResponse 产品搜索响应
|
||
type ProductSearchResponse struct {
|
||
Total int64 `json:"total" comment:"总数"`
|
||
Page int `json:"page" comment:"页码"`
|
||
Size int `json:"size" comment:"每页数量"`
|
||
Items []ProductInfoResponse `json:"items" comment:"产品列表"`
|
||
}
|
||
|
||
// ProductSimpleResponse 产品简单信息响应
|
||
type ProductSimpleResponse struct {
|
||
ID string `json:"id" comment:"产品ID"`
|
||
OldID *string `json:"old_id,omitempty" comment:"旧产品ID"`
|
||
Name string `json:"name" comment:"产品名称"`
|
||
Code string `json:"code" comment:"产品编号"`
|
||
Description string `json:"description" comment:"产品简介"`
|
||
Category *CategorySimpleResponse `json:"category,omitempty" comment:"分类信息"`
|
||
Price float64 `json:"price" comment:"产品价格"`
|
||
IsPackage bool `json:"is_package" comment:"是否组合包"`
|
||
IsSubscribed *bool `json:"is_subscribed,omitempty" comment:"当前用户是否已订阅"`
|
||
}
|
||
|
||
// ProductSimpleAdminResponse 管理员产品简单信息响应(包含成本价)
|
||
type ProductSimpleAdminResponse struct {
|
||
ProductSimpleResponse
|
||
CostPrice float64 `json:"cost_price" comment:"成本价"`
|
||
UIComponentPrice float64 `json:"ui_component_price" comment:"UI组件价格(组合包使用)"`
|
||
}
|
||
|
||
// ProductStatsResponse 产品统计响应
|
||
type ProductStatsResponse struct {
|
||
TotalProducts int64 `json:"total_products" comment:"产品总数"`
|
||
EnabledProducts int64 `json:"enabled_products" comment:"启用产品数"`
|
||
VisibleProducts int64 `json:"visible_products" comment:"可见产品数"`
|
||
PackageProducts int64 `json:"package_products" comment:"组合包产品数"`
|
||
}
|
||
|
||
// ProductAdminInfoResponse 管理员产品详情响应
|
||
type ProductAdminInfoResponse struct {
|
||
ID string `json:"id" comment:"产品ID"`
|
||
OldID *string `json:"old_id,omitempty" comment:"旧产品ID"`
|
||
Name string `json:"name" comment:"产品名称"`
|
||
Code string `json:"code" comment:"产品编号"`
|
||
Description string `json:"description" comment:"产品简介"`
|
||
Content string `json:"content" comment:"产品内容"`
|
||
CategoryID string `json:"category_id" comment:"一级分类ID"`
|
||
SubCategoryID *string `json:"sub_category_id,omitempty" comment:"二级分类ID"`
|
||
Price float64 `json:"price" comment:"产品价格"`
|
||
CostPrice float64 `json:"cost_price" comment:"成本价"`
|
||
Remark string `json:"remark" comment:"备注"`
|
||
IsEnabled bool `json:"is_enabled" comment:"是否启用"`
|
||
IsVisible bool `json:"is_visible" comment:"是否可见"`
|
||
IsPackage bool `json:"is_package" comment:"是否组合包"`
|
||
|
||
// UI组件相关字段
|
||
SellUIComponent bool `json:"sell_ui_component" comment:"是否出售UI组件"`
|
||
UIComponentPrice float64 `json:"ui_component_price" comment:"UI组件销售价格(组合包使用)"`
|
||
|
||
// SEO信息
|
||
SEOTitle string `json:"seo_title" comment:"SEO标题"`
|
||
SEODescription string `json:"seo_description" comment:"SEO描述"`
|
||
SEOKeywords string `json:"seo_keywords" comment:"SEO关键词"`
|
||
|
||
// 关联信息
|
||
Category *CategoryInfoResponse `json:"category,omitempty" comment:"一级分类信息"`
|
||
SubCategory *SubCategoryInfoResponse `json:"sub_category,omitempty" comment:"二级分类信息"`
|
||
|
||
// 组合包信息
|
||
PackageItems []*PackageItemResponse `json:"package_items,omitempty" comment:"组合包项目列表"`
|
||
|
||
// 文档信息
|
||
Documentation *DocumentationResponse `json:"documentation,omitempty" comment:"产品文档"`
|
||
|
||
CreatedAt time.Time `json:"created_at" comment:"创建时间"`
|
||
UpdatedAt time.Time `json:"updated_at" comment:"更新时间"`
|
||
}
|
||
|
||
// ProductInfoWithDocumentResponse 包含文档的产品详情响应
|
||
type ProductInfoWithDocumentResponse struct {
|
||
ProductInfoResponse
|
||
Documentation *DocumentationResponse `json:"documentation,omitempty" comment:"产品文档"`
|
||
}
|
||
|
||
// ProductAdminListResponse 管理员产品列表响应
|
||
type ProductAdminListResponse struct {
|
||
Total int64 `json:"total" comment:"总数"`
|
||
Page int `json:"page" comment:"页码"`
|
||
Size int `json:"size" comment:"每页数量"`
|
||
Items []ProductAdminInfoResponse `json:"items" comment:"产品列表"`
|
||
}
|