47 lines
1.8 KiB
Go
47 lines
1.8 KiB
Go
package model
|
||
|
||
import (
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
const (
|
||
VisibilityPublic = iota
|
||
VisibilityFriendsOnly
|
||
VisibilitySelfOnly
|
||
)
|
||
|
||
// 朋友圈动态表
|
||
type Moment struct {
|
||
gorm.Model
|
||
UserID string `gorm:"column:user_id;type:varchar(32);not null;index:idx_user_id;comment:'发布者用户ID'"`
|
||
Content string `gorm:"column:content;type:text;comment:'动态内容'"`
|
||
Visibility uint8 `gorm:"column:visibility;type:tinyint unsigned;default:1;comment:'可见性;1:公开,2:仅好友可见,3:仅自己可见'"`
|
||
Location string `gorm:"column:location;type:varchar(200);default:'';comment:'发布地点'"`
|
||
Status uint8 `gorm:"column:status;type:tinyint unsigned;default:1;comment:'状态;0:删除,1:正常'"`
|
||
LikeCount uint32 `gorm:"column:like_count;type:int unsigned;default:0;comment:'点赞数'"`
|
||
CommentCount uint32 `gorm:"column:comment_count;type:int unsigned;default:0;comment:'评论数'"`
|
||
}
|
||
|
||
// 朋友圈图片表
|
||
type MomentImage struct {
|
||
gorm.Model
|
||
MomentID uint `gorm:"column:moment_id;type:int unsigned;not null;comment:'朋友圈动态ID'"`
|
||
ImageURL string `gorm:"column:image_url;type:varchar(255);not null;comment:'图片URL'"`
|
||
}
|
||
|
||
// 朋友圈点赞表
|
||
type MomentLike struct {
|
||
gorm.Model
|
||
MomentID uint `gorm:"column:moment_id;type:int unsigned;not null;comment:'朋友圈动态ID'"`
|
||
UserID string `gorm:"column:user_id;type:varchar(32);not null;comment:'点赞用户ID'"`
|
||
}
|
||
|
||
// 朋友圈评论表
|
||
type MomentComment struct {
|
||
gorm.Model
|
||
MomentID uint `gorm:"column:moment_id;type:int unsigned;not null;comment:'朋友圈动态ID'"`
|
||
UserID string `gorm:"column:user_id;type:varchar(32);not null;comment:'评论用户ID'"`
|
||
Content string `gorm:"column:content;type:text;not null;comment:'评论内容'"`
|
||
ParentID uint `gorm:"column:parent_id;type:int unsigned;index:idx_parent_id;comment:'父评论ID,用于回复功能'"`
|
||
}
|