package model import ( "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/os/gtime" ) type Chapter struct { g.Meta `orm:"table:chapters"` Id int64 `json:"id" orm:"id"` BookId int64 `json:"bookId" orm:"book_id"` Title string `json:"title" orm:"title"` Content string `json:"content" orm:"content"` WordCount int `json:"wordCount" orm:"word_count"` Sort int `json:"sort" orm:"sort"` IsLocked int `json:"isLocked" orm:"is_locked"` RequiredScore int `json:"requiredScore" orm:"required_score"` } type ChapterListIn struct { Page int Size int BookId int64 Title string IsLocked int } type ChapterListOut struct { Total int List []Chapter } type ChapterAddIn struct { BookId int64 Title string Content string WordCount int Sort int IsLocked int RequiredScore int } type ChapterEditIn struct { Id int64 BookId int64 Title string Content string WordCount int Sort int IsLocked int RequiredScore int } type ChapterDelIn struct { Id int64 } type ChapterCRUDOut struct { Success bool } // App 章节列表查询输入参数 type ChapterAppListIn struct { BookId int64 `json:"bookId" dc:"书籍ID"` IsDesc bool `json:"isDesc" dc:"是否逆序排列"` Page int `json:"page" dc:"页码"` Size int `json:"size" dc:"每页数量"` UserId int64 `json:"userId" dc:"用户ID"` } // App 章节列表输出结构体(不包含 content) type ChapterAppItem struct { g.Meta `orm:"table:chapters"` Id int64 `json:"id" orm:"id" dc:"章节ID"` Title string `json:"title" orm:"title" dc:"章节标题"` WordCount int `json:"wordCount" orm:"word_count" dc:"字数"` Sort int `json:"sort" orm:"sort" dc:"排序"` IsLocked int `json:"isLocked" orm:"is_locked" dc:"是否锁定"` RequiredScore int `json:"requiredScore" orm:"required_score" dc:"所需积分"` UpdatedAt *gtime.Time `json:"updatedAt" orm:"updated_at" dc:"更新时间"` ReadProgress int `json:"readProgress" dc:"阅读进度百分比"` ReadAt *gtime.Time `json:"readAt" dc:"最后阅读时间"` IsPurchased bool `json:"isPurchased" dc:"用户是否已购买该章节"` } type ChapterAppListOut struct { List []ChapterAppItem Total int } // App 章节详情查询输入参数 type ChapterAppDetailIn struct { Id int64 `json:"id" dc:"章节ID"` } // App 章节详情输出结构体 type ChapterAppDetailOut struct { Id int64 `json:"id" dc:"章节ID"` BookId int64 `json:"bookId" dc:"书籍ID"` Title string `json:"title" dc:"章节标题"` Content string `json:"content" dc:"章节内容"` WordCount int `json:"wordCount" dc:"字数"` Sort int `json:"sort" dc:"排序"` IsLocked int `json:"isLocked" dc:"是否锁定"` RequiredScore int `json:"requiredScore" dc:"所需积分"` UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"` } // App 购买章节输入参数 type ChapterAppPurchaseIn struct { Id int64 `json:"id" dc:"章节ID"` UserId int64 `json:"userId" dc:"用户ID"` } // App 购买章节输出结构体 type ChapterAppPurchaseOut struct { Success bool `json:"success" dc:"是否成功"` } // App 上传阅读进度输入参数 type ChapterAppProgressIn struct { BookId int64 `json:"bookId" dc:"书籍ID"` ChapterId int64 `json:"chapterId" dc:"章节ID"` Progress int `json:"progress" dc:"阅读进度百分比"` UserId int64 `json:"userId" dc:"用户ID"` } // App 批量上传阅读进度输入参数 type ChapterAppBatchProgressIn struct { BookId int64 `json:"bookId" dc:"书籍ID"` Chapters []ChapterProgressItem `json:"chapters" dc:"章节进度列表"` UserId int64 `json:"userId" dc:"用户ID"` } // 章节进度项 type ChapterProgressItem struct { ChapterId int64 `json:"chapterId" dc:"章节ID"` Progress int `json:"progress" dc:"阅读进度百分比"` } // App 上传阅读进度输出结构体 type ChapterAppProgressOut struct { Success bool `json:"success" dc:"是否成功"` }