数据结构优化

This commit is contained in:
李琦
2026-01-19 16:14:08 +08:00
parent 6d789c7c2a
commit 68c4c6df1c
36 changed files with 4063 additions and 760 deletions

View File

@@ -12,7 +12,9 @@ type Post struct {
OriginalID string `json:"originalId,omitempty" gorm:"-"` // For backward compatibility
Title string `json:"title" gorm:"column:title"`
CategoryID uint `json:"categoryId" gorm:"column:category_id"`
Category *Category `json:"category,omitempty" gorm:"foreignKey:CategoryID"` // For join query result
Category *Category `json:"category,omitempty" gorm:"foreignKey:CategoryID"` // For join query result
ColumnID *uint `json:"columnId,omitempty" gorm:"column:column_id;default:NULL"` // Optional column association
Column *Column `json:"column,omitempty" gorm:"foreignKey:ColumnID"` // For join query result
Excerpt string `json:"excerpt" gorm:"column:excerpt"`
Content string `json:"content" gorm:"column:content;type:text"`
ReadCount uint `json:"readCount" gorm:"column:read_count;default:0"`
@@ -51,15 +53,20 @@ func (p *Post) BeforeUpdate(tx *gorm.DB) error {
// PostResponse 博客文章响应模型
type PostResponse struct {
ID uint `json:"id"`
Title string `json:"title"`
CategoryID uint `json:"categoryId"`
CategoryName string `json:"categoryName"`
CategorySlug string `json:"categorySlug"`
Date string `json:"date"`
Excerpt string `json:"excerpt,omitempty"`
Content string `json:"content,omitempty"`
Tags []Tag `json:"tags,omitempty"`
ID uint `json:"id"`
Title string `json:"title"`
CategoryID uint `json:"categoryId"`
CategoryName string `json:"categoryName"`
CategorySlug string `json:"categorySlug"`
ColumnID *uint `json:"columnId,omitempty"`
ColumnName string `json:"columnName,omitempty"`
ColumnSlug string `json:"columnSlug,omitempty"`
Date string `json:"date"`
Excerpt string `json:"excerpt,omitempty"`
Content *string `json:"content,omitempty"` // 使用指针类型,当 includeContent=true 时总是设置
Tags []Tag `json:"tags,omitempty"`
IsPublished int `json:"isPublished,omitempty"`
ReadCount uint `json:"readCount,omitempty"`
}
// PostHistory 文章历史记录模型