Files
xuanzhi-service/server/model/book/book.go
2026-04-27 10:12:21 +08:00

49 lines
3.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package book
import "time"
const (
BookEraTagUnknown = "unknown"
BookEraTagAncient = "ancient"
BookEraTagHan = "han"
BookEraTagTang = "tang"
BookEraTagSong = "song"
BookEraTagYuan = "yuan"
BookEraTagMing = "ming"
BookEraTagQing = "qing"
BookEraTagModern = "modern"
BookEraTagContemporary = "contemporary"
BookCompletionStatusCompleted = "completed"
BookCompletionStatusSerializing = "serializing"
BookPublishStatusDraft = "draft"
BookPublishStatusOffShelf = "off_shelf"
BookPublishStatusOnShelf = "on_shelf"
BookCommentStatusNormal = "normal"
BookCommentStatusHidden = "hidden"
)
type Book struct {
HardDeleteModel
Title string `json:"title" form:"title" gorm:"type:varchar(255);not null;comment:书名主标题"`
Subtitle string `json:"subtitle" form:"subtitle" gorm:"type:varchar(255);comment:书籍副标题"`
BookType string `json:"bookType" form:"bookType" gorm:"type:varchar(64);not null;index;comment:书籍类型字典值,对应 book_type"`
EraTag string `json:"eraTag" form:"eraTag" gorm:"type:varchar(32);not null;default:unknown;index;comment:时代标签字典值,对应 book_era_tag"`
CoverUrl string `json:"coverUrl" form:"coverUrl" gorm:"type:varchar(500);comment:封面图片 URL"`
Publisher string `json:"publisher" form:"publisher" gorm:"type:varchar(128);comment:出版社名称"`
PublishedAt *time.Time `json:"publishedAt" form:"publishedAt" gorm:"type:date;comment:出版日期"`
Intro string `json:"intro" form:"intro" gorm:"type:text;comment:书籍简介"`
HotScore int64 `json:"hotScore" form:"hotScore" gorm:"not null;default:0;comment:热度聚合值"`
Rating float64 `json:"rating" form:"rating" gorm:"type:numeric(3,1);not null;default:0.0;comment:书籍评分,范围 0-10"`
CommentCount int64 `json:"commentCount" form:"commentCount" gorm:"not null;default:0;comment:点评数聚合值"`
WordCount int64 `json:"wordCount" form:"wordCount" gorm:"not null;default:0;comment:书籍总字数"`
CompletionStatus string `json:"completionStatus" form:"completionStatus" gorm:"type:varchar(32);not null;default:serializing;index;comment:书籍完结状态字典值,对应 book_completion_status"`
PublishStatus string `json:"publishStatus" form:"publishStatus" gorm:"type:varchar(32);not null;default:draft;index;comment:书籍上下架状态字典值,对应 book_publish_status"`
SeriesID *uint `json:"seriesId" form:"seriesId" gorm:"index:idx_book_series_id_series_sort;comment:所属系列 ID可为空"`
SeriesSort int `json:"seriesSort" form:"seriesSort" gorm:"not null;default:0;index:idx_book_series_id_series_sort;comment:同系列内展示排序"`
RawTxtUrl string `json:"rawTxtUrl" form:"rawTxtUrl" gorm:"type:varchar(500);comment:原始 txt 文件 URL"`
}
func (Book) TableName() string {
return "book"
}