90 lines
3.6 KiB
Go
90 lines
3.6 KiB
Go
package v1
|
||
|
||
import "github.com/gogf/gf/v2/frame/g"
|
||
|
||
// ============================================================================
|
||
// 管理端软件开发服务契约(迭代-2026-09-29):list / detail / save / delete
|
||
//
|
||
// 封面 cover_path 库内存相对路径(/static/...);响应里 cover_url 为按
|
||
// site.base_url 拼接的绝对地址。content_md 为 Markdown 原文,管理端编辑预览、
|
||
// 小程序端解析渲染(富文本节点),后端只存原文不渲染。
|
||
// ============================================================================
|
||
|
||
// AdminGoodsItem 服务列表项(响应 snake_case,不含 content_md —— 详情接口单独取)
|
||
type AdminGoodsItem struct {
|
||
Id int64 `json:"id"`
|
||
Category int `json:"category"`
|
||
CategoryName string `json:"category_name"`
|
||
Title string `json:"title"`
|
||
Summary string `json:"summary"`
|
||
CoverPath string `json:"cover_path"`
|
||
CoverUrl string `json:"cover_url"`
|
||
PriceCents int64 `json:"price_cents"`
|
||
PriceNote string `json:"price_note"`
|
||
Sort int `json:"sort"`
|
||
IsEnabled int `json:"is_enabled"`
|
||
CreatedAt string `json:"created_at"`
|
||
UpdatedAt string `json:"updated_at"`
|
||
}
|
||
|
||
// AdminGoodsListReq 服务列表
|
||
type AdminGoodsListReq struct {
|
||
g.Meta `path:"/admin/goods/list" method:"get" tags:"admin" summary:"软件开发服务列表"`
|
||
Keyword string `json:"keyword"`
|
||
Category int `json:"category"` // 0=全部
|
||
IsEnabled *int `json:"isEnabled"`
|
||
Page int `json:"page"`
|
||
PageSize int `json:"pageSize"`
|
||
SortBy string `json:"sortBy"`
|
||
SortOrder string `json:"sortOrder"` // asc / desc
|
||
}
|
||
type AdminGoodsListRes struct {
|
||
List []AdminGoodsItem `json:"list"`
|
||
Total int `json:"total"`
|
||
}
|
||
|
||
// AdminGoodsDetailReq 服务详情(编辑回填,含 content_md)
|
||
type AdminGoodsDetailReq struct {
|
||
g.Meta `path:"/admin/goods/detail" method:"get" tags:"admin" summary:"软件开发服务详情"`
|
||
Id int64 `v:"required" json:"id"`
|
||
}
|
||
type AdminGoodsDetailRes struct {
|
||
Id int64 `json:"id"`
|
||
Category int `json:"category"`
|
||
CategoryName string `json:"category_name"`
|
||
Title string `json:"title"`
|
||
Summary string `json:"summary"`
|
||
ContentMd string `json:"content_md"`
|
||
CoverPath string `json:"cover_path"`
|
||
CoverUrl string `json:"cover_url"`
|
||
PriceCents int64 `json:"price_cents"`
|
||
PriceNote string `json:"price_note"`
|
||
Sort int `json:"sort"`
|
||
IsEnabled int `json:"is_enabled"`
|
||
}
|
||
|
||
// AdminGoodsSaveReq 新增/编辑服务(id=0 新建)。coverPath 传上传接口返回的 path(相对路径)。
|
||
type AdminGoodsSaveReq struct {
|
||
g.Meta `path:"/admin/goods/save" method:"post" tags:"admin" summary:"保存软件开发服务"`
|
||
Id int64 `json:"id"`
|
||
Category int `v:"required|in:1,2,3,4#请选择分类|分类不合法" json:"category"`
|
||
Title string `v:"required#请填写服务名称" json:"title"`
|
||
Summary string `v:"length:0,500#简介最多 500 字" json:"summary"`
|
||
ContentMd string `json:"contentMd"`
|
||
PriceCents int64 `v:"min:0#价格不能为负" json:"priceCents"`
|
||
PriceNote string `v:"length:0,64#价格备注最多 64 字" json:"priceNote"`
|
||
CoverPath string `json:"coverPath"`
|
||
Sort int `json:"sort"`
|
||
IsEnabled int `json:"isEnabled"`
|
||
}
|
||
type AdminGoodsSaveRes struct {
|
||
Id int64 `json:"id"`
|
||
}
|
||
|
||
// AdminGoodsDeleteReq 删除服务(软删除)
|
||
type AdminGoodsDeleteReq struct {
|
||
g.Meta `path:"/admin/goods/delete" method:"post" tags:"admin" summary:"删除软件开发服务"`
|
||
Id int64 `v:"required" json:"id"`
|
||
}
|
||
type AdminGoodsDeleteRes struct{}
|