|
|
- package Models
-
- import (
- "github.com/gofrs/uuid"
- )
-
- type Post struct {
- Base
- UserID uuid.UUID `gorm:"type:uuid;column:user_id;not null;" json:"user_id"`
- Title string `gorm:"not null" json:"title"`
- Content string `gorm:"not null" json:"content"`
- FrontPage bool `gorm:"not null;type:boolean" json:"front_page"`
- Order int `gorm:"not null" json:"order"`
-
- PostLinks []PostLink `json:"links"`
- PostImages []PostImage `json:"images"`
- PostVideos []PostVideo `json:"videos"`
- PostAudios []PostAudio `json:"audios"`
- }
-
- type PostLinkType string
-
- const (
- POST_LINK_FACEBOOK PostLinkType = "Facebook"
- POST_LINK_INSTAGRAM PostLinkType = "Instagram"
- POST_LINK_YOUTUBE PostLinkType = "YouTube"
- POST_LINK_SPOTIFY PostLinkType = "Spotify"
- POST_LINK_OTHER PostLinkType = "Other"
- )
-
- type PostLink struct {
- Base
- PostID uuid.UUID `gorm:"type:uuid;column:post_id;not null;" json:"post_id"`
- Link string `gorm:"not null" json:"link"`
- Type PostLinkType `gorm:"not null" json:"type"`
- }
-
- type PostImage struct {
- Base
- PostID uuid.UUID `gorm:"type:uuid;column:post_id;not null;" json:"post_id"`
- Filepath string `gorm:"not null" json:"filepath"`
- Mimetype string `gorm:"not null" json:"mimetype"`
- Size int64 `gorm:"not null"`
- }
-
- type PostVideo struct {
- Base
- PostID uuid.UUID `gorm:"type:uuid;column:post_id;not null;" json:"post_id"`
- Filepath string `json:"filepath"`
- Mimetype string `json:"mimetype"`
- Size int64 `json:"size"`
- Url string `json:"url"`
- }
-
- type PostAudio struct {
- Base
- PostID uuid.UUID `gorm:"type:uuid;column:post_id;not null;" json:"post_id"`
- Filepath string `json:"filepath"`
- Mimetype string `json:"mimetype"`
- Size int64 `json:"size"`
- Url string `json:"url"`
- }
|