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"` }