Files
nl_cms-api/internal/model/article.go
2025-07-29 12:45:07 +08:00

67 lines
3.8 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 model
import (
"github.com/gogf/gf/v2/os/gtime"
)
// Article 文章模型
type Article struct {
Id int `json:"id" dc:"主键"`
Title string `json:"title" dc:"标题"`
Slug string `json:"slug" dc:"URL别名"`
Summary string `json:"summary" dc:"摘要"`
Content string `json:"content" dc:"内容(Markdown)"`
HtmlContent string `json:"html_content" dc:"HTML内容"`
CoverImage string `json:"cover_image" dc:"封面图片"`
CategoryId int `json:"category_id" dc:"分类ID"`
Tags interface{} `json:"tags" dc:"标签"`
AuthorId int `json:"author_id" dc:"作者ID"`
ViewCount int `json:"view_count" dc:"浏览次数"`
LikeCount int `json:"like_count" dc:"点赞次数"`
CommentCount int `json:"comment_count" dc:"评论次数"`
IsPublished int `json:"is_published" dc:"是否发布 0草稿 1已发布"`
IsFeatured int `json:"is_featured" dc:"是否推荐 0否 1是"`
IsTop int `json:"is_top" dc:"是否置顶 0否 1是"`
SeoTitle string `json:"seo_title" dc:"SEO标题"`
SeoDescription string `json:"seo_description" dc:"SEO描述"`
SeoKeywords string `json:"seo_keywords" dc:"SEO关键词"`
PublishedAt *gtime.Time `json:"published_at" dc:"发布时间"`
CreatedAt *gtime.Time `json:"created_at" dc:"创建时间"`
UpdatedAt *gtime.Time `json:"updated_at" dc:"更新时间"`
DeletedAt int `json:"deleted_at" dc:"删除时间"`
}
// CreateArticleRequest 创建文章请求
type CreateArticleRequest struct {
Title string `json:"title" v:"required|length:1,255#标题不能为空|标题长度不能超过255字符" dc:"标题"`
Slug string `json:"slug" v:"length:0,255#URL别名长度不能超过255字符" dc:"URL别名"`
Summary string `json:"summary" dc:"摘要"`
Content string `json:"content" v:"required#内容不能为空" dc:"内容(Markdown)"`
CoverImage string `json:"cover_image" dc:"封面图片"`
CategoryId int `json:"category_id" dc:"分类ID"`
Tags []string `json:"tags" dc:"标签"`
AuthorId int `json:"author_id" dc:"作者ID"`
IsPublished int `json:"is_published" dc:"是否发布"`
IsFeatured int `json:"is_featured" dc:"是否推荐"`
IsTop int `json:"is_top" dc:"是否置顶"`
SeoTitle string `json:"seo_title" dc:"SEO标题"`
SeoDescription string `json:"seo_description" dc:"SEO描述"`
SeoKeywords string `json:"seo_keywords" dc:"SEO关键词"`
}
// UpdateArticleRequest 更新文章请求
type UpdateArticleRequest struct {
Title string `json:"title" v:"required|length:1,255#标题不能为空|标题长度不能超过255字符" dc:"标题"`
Slug string `json:"slug" v:"required|length:1,255#URL别名不能为空|URL别名长度不能超过255字符" dc:"URL别名"`
Summary string `json:"summary" v:"required#摘要不能为空" dc:"摘要"`
Content string `json:"content" v:"required#内容不能为空" dc:"内容"`
CoverImage string `json:"cover_image" dc:"封面图片"`
CategoryId int `json:"category_id" dc:"分类ID"`
Tags []string `json:"tags" dc:"标签"`
IsPublished int `json:"is_published" v:"in:0,1#发布状态只能为0或1" dc:"是否发布"`
IsFeatured int `json:"is_featured" v:"in:0,1#推荐状态只能为0或1" dc:"是否推荐"`
IsTop int `json:"is_top" v:"in:0,1#置顶状态只能为0或1" dc:"是否置顶"`
SeoTitle string `json:"seo_title" dc:"SEO标题"`
SeoDescription string `json:"seo_description" dc:"SEO描述"`
SeoKeywords string `json:"seo_keywords" dc:"SEO关键词"`
}