pet-ai/server/plugin/wechat-integration/model/mp_draft.go

96 lines
3.1 KiB
Go

package model
import (
"time"
"github.com/flipped-aurora/gin-vue-admin/server/global"
)
// MpDraft 微信公众号草稿表
type MpDraft struct {
global.GVA_MODEL
MediaID string `json:"mediaId" gorm:"type:varchar(128);not null;index;comment:草稿的media_id"`
Title string `json:"title" gorm:"type:varchar(255);not null;comment:图文消息标题"`
Author *string `json:"author" gorm:"type:varchar(100);comment:作者"`
Digest *string `json:"digest" gorm:"type:varchar(500);comment:图文消息摘要"`
Content *string `json:"content" gorm:"type:longtext;comment:图文消息内容"`
ContentSourceUrl *string `json:"contentSourceUrl" gorm:"type:varchar(1024);comment:原文地址"`
ThumbMediaID *string `json:"thumbMediaId" gorm:"type:varchar(128);comment:缩略图的media_id"`
ThumbUrl *string `json:"thumbUrl" gorm:"type:varchar(1024);comment:缩略图URL"`
ShowCoverPic int `json:"showCoverPic" gorm:"default:1;comment:是否显示封面 0不显示 1显示"`
NeedOpenComment int `json:"needOpenComment" gorm:"default:0;comment:是否打开评论 0不打开 1打开"`
OnlyFansCanComment int `json:"onlyFansCanComment" gorm:"default:0;comment:是否粉丝才可评论 0所有人 1粉丝"`
// 草稿状态
Status string `json:"status" gorm:"type:varchar(32);default:'draft';comment:状态 draft草稿 published已发布"`
UpdateTime *time.Time `json:"updateTime" gorm:"comment:更新时间"`
// 微信相关
WechatMediaID *string `json:"wechatMediaId" gorm:"type:varchar(128);comment:微信草稿media_id"`
WechatCreateTime *time.Time `json:"wechatCreateTime" gorm:"comment:微信创建时间"`
WechatUpdateTime *time.Time `json:"wechatUpdateTime" gorm:"comment:微信更新时间"`
}
// TableName 指定表名
func (MpDraft) TableName() string {
return "mp_draft"
}
// DraftStatus 草稿状态常量
const (
DraftStatusDraft = "draft" // 草稿
DraftStatusPublished = "published" // 已发布
DraftStatusDeleted = "deleted" // 已删除
)
// IsDraft 是否为草稿状态
func (d *MpDraft) IsDraft() bool {
return d.Status == DraftStatusDraft
}
// IsPublished 是否已发布
func (d *MpDraft) IsPublished() bool {
return d.Status == DraftStatusPublished
}
// IsDeleted 是否已删除
func (d *MpDraft) IsDeleted() bool {
return d.Status == DraftStatusDeleted
}
// GetDisplayTitle 获取显示标题
func (d *MpDraft) GetDisplayTitle() string {
if d.Title == "" {
return "无标题"
}
return d.Title
}
// GetDisplayAuthor 获取显示作者
func (d *MpDraft) GetDisplayAuthor() string {
if d.Author == nil || *d.Author == "" {
return "未知作者"
}
return *d.Author
}
// HasThumb 是否有缩略图
func (d *MpDraft) HasThumb() bool {
return d.ThumbMediaID != nil && *d.ThumbMediaID != ""
}
// IsShowCover 是否显示封面
func (d *MpDraft) IsShowCover() bool {
return d.ShowCoverPic == 1
}
// IsOpenComment 是否打开评论
func (d *MpDraft) IsOpenComment() bool {
return d.NeedOpenComment == 1
}
// IsOnlyFansComment 是否仅粉丝可评论
func (d *MpDraft) IsOnlyFansComment() bool {
return d.OnlyFansCanComment == 1
}