31 lines
1.1 KiB
Go
31 lines
1.1 KiB
Go
package domain
|
|
|
|
type Post struct {
|
|
ID string `json:"id" gorm:"primaryKey"`
|
|
Url string `json:"url"`
|
|
AccountID string // Foreign key field (must match Account.AccId)
|
|
Account Account `json:"account" gorm:"foreignKey:AccountID;references:AccId"`
|
|
Attachments []MediaAttachment `json:"media_attachments" gorm:"foreignKey:PostID;references:ID"`
|
|
}
|
|
|
|
type Account struct {
|
|
AccId string `json:"id" gorm:"primaryKey"`
|
|
Username string `json:"username"`
|
|
Acct string `json:"acct"`
|
|
DisplayName string `json:"display_name"`
|
|
IsBot bool `json:"bot"`
|
|
Url string `json:"url"`
|
|
AvatarStatic string `json:"avatar_static"`
|
|
}
|
|
|
|
type MediaAttachment struct {
|
|
ID string `json:"id" gorm:"primaryKey"`
|
|
Type string `json:"type"`
|
|
Url string `json:"url"`
|
|
PreviewUrl string `json:"preview_url"`
|
|
RemoteUrl string `json:"remote_url"`
|
|
PostID string `gorm:"index:idx_post_approved"` // Foreign key to Post
|
|
Approved bool `json:"approved" gorm:"index:idx_post_approved"`
|
|
Rejected bool `json:"rejected" gorm:"index:idx_post_rejected"`
|
|
}
|