Files
yixiaogao/backend/pkg/database/models.go

77 lines
3.1 KiB
Go
Raw Permalink Normal View History

2025-11-27 18:40:08 +08:00
package database
import (
"time"
)
// OfficialAccount 公众号信息
type OfficialAccount struct {
ID int64 `json:"id"`
Biz string `json:"biz"` // 公众号唯一标识
Nickname string `json:"nickname"` // 公众号名称
Homepage string `json:"homepage"` // 公众号主页链接
Description string `json:"description"` // 公众号描述
CreatedAt time.Time `json:"created_at"` // 创建时间
UpdatedAt time.Time `json:"updated_at"` // 更新时间
}
// Article 文章信息
type Article struct {
ID int64 `json:"id"`
OfficialID int64 `json:"official_id"` // 关联的公众号ID
Title string `json:"title"` // 文章标题
Author string `json:"author"` // 作者
Link string `json:"link"` // 文章链接
PublishTime string `json:"publish_time"` // 发布时间
CreateTime string `json:"create_time"` // 创建时间(抓取时间)
CommentID string `json:"comment_id"` // 评论ID
ReadNum int `json:"read_num"` // 阅读数
LikeNum int `json:"like_num"` // 点赞数
ShareNum int `json:"share_num"` // 分享数
ContentPreview string `json:"content_preview"` // 内容预览前200字
ParagraphCount int `json:"paragraph_count"` // 段落数
CreatedAt time.Time `json:"created_at"` // 数据库创建时间
UpdatedAt time.Time `json:"updated_at"` // 数据库更新时间
}
// ArticleContent 文章详细内容
type ArticleContent struct {
ID int64 `json:"id"`
ArticleID int64 `json:"article_id"` // 关联的文章ID
HtmlContent string `json:"html_content"` // HTML原始内容
TextContent string `json:"text_content"` // 纯文本内容
Paragraphs string `json:"paragraphs"` // 段落内容JSON数组
Images string `json:"images"` // 图片链接JSON数组
CreatedAt time.Time `json:"created_at"` // 创建时间
}
// ArticleListItem 文章列表项用于API返回
type ArticleListItem struct {
ID int64 `json:"id"`
Title string `json:"title"`
Author string `json:"author"`
PublishTime string `json:"publish_time"`
ReadNum int `json:"read_num"`
LikeNum int `json:"like_num"`
OfficialName string `json:"official_name"`
ContentPreview string `json:"content_preview"`
}
// ArticleDetail 文章详情用于API返回
type ArticleDetail struct {
Article
OfficialName string `json:"official_name"`
HtmlContent string `json:"html_content"`
TextContent string `json:"text_content"`
Paragraphs []string `json:"paragraphs"`
Images []string `json:"images"`
}
// Statistics 统计信息
type Statistics struct {
TotalOfficials int `json:"total_officials"` // 公众号总数
TotalArticles int `json:"total_articles"` // 文章总数
TotalReadNum int `json:"total_read_num"` // 总阅读数
TotalLikeNum int `json:"total_like_num"` // 总点赞数
}