Interactive/pkg/models/posts.go

32 lines
1.2 KiB
Go
Raw Normal View History

2024-02-02 15:42:42 +00:00
package models
import "time"
type Post struct {
BaseModel
2024-02-11 05:12:37 +00:00
// TODO Introduce thumbnail
2024-02-02 16:50:23 +00:00
Alias string `json:"alias" gorm:"uniqueIndex"`
Title string `json:"title"`
Content string `json:"content"`
2024-02-03 16:24:04 +00:00
Tags []Tag `json:"tags" gorm:"many2many:post_tags"`
Categories []Category `json:"categories" gorm:"many2many:post_categories"`
2024-02-04 10:40:20 +00:00
Attachments []Attachment `json:"attachments"`
2024-02-02 16:50:23 +00:00
LikedAccounts []PostLike `json:"liked_accounts"`
DislikedAccounts []PostDislike `json:"disliked_accounts"`
2024-02-03 07:20:32 +00:00
RepostTo *Post `json:"repost_to" gorm:"foreignKey:RepostID"`
ReplyTo *Post `json:"reply_to" gorm:"foreignKey:ReplyID"`
2024-02-03 11:22:50 +00:00
PinnedAt *time.Time `json:"pinned_at"`
EditedAt *time.Time `json:"edited_at"`
2024-02-02 16:50:23 +00:00
PublishedAt time.Time `json:"published_at"`
2024-02-03 07:20:32 +00:00
RepostID *uint `json:"repost_id"`
ReplyID *uint `json:"reply_id"`
2024-02-02 16:50:23 +00:00
RealmID *uint `json:"realm_id"`
AuthorID uint `json:"author_id"`
Author Account `json:"author"`
// Dynamic Calculating Values
LikeCount int64 `json:"like_count" gorm:"-"`
DislikeCount int64 `json:"dislike_count" gorm:"-"`
2024-02-02 15:42:42 +00:00
}