116 lines
4.5 KiB
Go
116 lines
4.5 KiB
Go
package v1
|
||
|
||
import "github.com/gogf/gf/v2/frame/g"
|
||
|
||
// ============================================================================
|
||
// C 端开发项目契约(迭代-2026-09-30 三期)
|
||
//
|
||
// 流程:后台建单(生成绑定令牌)→ 用户扫小程序码进入绑定页 → POST bind 绑定到
|
||
// 当前用户 → 后台维护阶段/小节点/交付物(原型、UI 设计稿等)→ 用户端只读查看。
|
||
// ============================================================================
|
||
|
||
// ProjectStageItem 项目阶段(含小节点与交付物)
|
||
type ProjectStageItem struct {
|
||
Id int64 `json:"id"`
|
||
Title string `json:"title"`
|
||
Status int `json:"status"` // 0未开始 1进行中 2已完成
|
||
StatusText string `json:"status_text"`
|
||
Nodes []ProjectNodeItem `json:"nodes"`
|
||
Files []ProjectFileItem `json:"files"`
|
||
}
|
||
|
||
// ProjectNodeItem 阶段小节点
|
||
type ProjectNodeItem struct {
|
||
Id int64 `json:"id"`
|
||
Title string `json:"title"`
|
||
IsDone int `json:"is_done"`
|
||
DoneAt string `json:"done_at"`
|
||
}
|
||
|
||
// ProjectFileItem 阶段交付物(图片,绝对 URL)
|
||
type ProjectFileItem struct {
|
||
Id int64 `json:"id"`
|
||
FileName string `json:"file_name"`
|
||
FileUrl string `json:"file_url"`
|
||
}
|
||
|
||
// ProjectPayItem 项目分期(后台确认到账,用户只读)
|
||
type ProjectPayItem struct {
|
||
Id int64 `json:"id"`
|
||
Seq int `json:"seq"`
|
||
Percent int `json:"percent"`
|
||
AmountCents int64 `json:"amount_cents"`
|
||
Trigger string `json:"trigger"`
|
||
TriggerText string `json:"trigger_text"`
|
||
Status int `json:"status"` // 0待支付 1已支付
|
||
PaidAt string `json:"paid_at"`
|
||
}
|
||
|
||
// ProjectMaintainOut 维护期信息
|
||
type ProjectMaintainOut struct {
|
||
PlanName string `json:"plan_name"`
|
||
FreeYears int `json:"free_years"`
|
||
YearlyFeeCents int64 `json:"yearly_fee_cents"`
|
||
SourceOnly int `json:"source_only"` // 1=仅源码无售后
|
||
Accepted int `json:"accepted"`
|
||
AcceptedAt string `json:"accepted_at"`
|
||
StartAt string `json:"start_at"` // 维护期起算日(后台可调)
|
||
PaidUntil string `json:"paid_until"` // 维护费已缴至(= 下次缴费日)
|
||
}
|
||
|
||
// ProjectItem 项目列表项
|
||
type ProjectItem struct {
|
||
Id int64 `json:"id"`
|
||
Title string `json:"title"`
|
||
Description string `json:"description"`
|
||
PriceCents int64 `json:"price_cents"`
|
||
PriceNote string `json:"price_note"`
|
||
DueNote string `json:"due_note"`
|
||
Status int `json:"status"`
|
||
StatusText string `json:"status_text"`
|
||
StageTotal int `json:"stage_total"` // 已完成阶段数(输出时算好,前端直接展示进度)
|
||
StageDone int `json:"stage_done"`
|
||
CoverUrl string `json:"cover_url"` // 入口图(第一个阶段交付物图片,可能为空)
|
||
UpdatedAt string `json:"updated_at"`
|
||
}
|
||
|
||
// ProjectMineReq 我的项目(扫码绑定后可见)
|
||
type ProjectMineReq struct {
|
||
g.Meta `path:"/service/project/mine" method:"get" tags:"service" summary:"我的开发项目"`
|
||
}
|
||
type ProjectMineRes struct {
|
||
List []ProjectItem `json:"list"`
|
||
}
|
||
|
||
// ProjectDetailReq 项目详情(仅限已绑定用户;含阶段/节点/交付物/分期/维护期)
|
||
type ProjectDetailReq struct {
|
||
g.Meta `path:"/service/project/detail" method:"get" tags:"service" summary:"开发项目详情"`
|
||
Id int64 `v:"required" json:"id"`
|
||
}
|
||
type ProjectDetailRes struct {
|
||
ProjectItem
|
||
Stages []ProjectStageItem `json:"stages"`
|
||
Pays []ProjectPayItem `json:"pays"` // 分期付款(进度与到账状态)
|
||
Maintain *ProjectMaintainOut `json:"maintain"` // 维护期信息(未选模板为 null)
|
||
CanAccept int `json:"can_accept"` // 1=可点「确认验收」(已交付且未验收)
|
||
}
|
||
|
||
// ProjectAcceptReq 用户确认验收:进入维护期(维护期起点=确认当天,后台可调整)。
|
||
type ProjectAcceptReq struct {
|
||
g.Meta `path:"/service/project/accept" method:"post" tags:"service" summary:"确认验收进入维护期"`
|
||
Id int64 `v:"required" json:"id"`
|
||
}
|
||
type ProjectAcceptRes struct {
|
||
MaintainStartAt string `json:"maintain_start_at"`
|
||
PaidUntil string `json:"paid_until"`
|
||
}
|
||
|
||
// ProjectBindReq 扫码绑定项目(令牌来自小程序码 scene)
|
||
type ProjectBindReq struct {
|
||
g.Meta `path:"/service/project/bind" method:"post" tags:"service" summary:"绑定开发项目"`
|
||
Token string `v:"required#缺少绑定令牌" json:"token"`
|
||
}
|
||
type ProjectBindRes struct {
|
||
ProjectId int64 `json:"project_id"`
|
||
}
|