Interactive/pkg/models/accounts.go

40 lines
1.6 KiB
Go
Raw Normal View History

2024-02-01 15:26:17 +00:00
package models
2024-02-03 07:20:32 +00:00
import "time"
// Account profiles basically fetched from Hydrogen.Identity
2024-02-01 15:26:17 +00:00
// But cache at here for better usage
// At the same time this model can make relations between local models
type Account struct {
BaseModel
2024-03-02 17:23:11 +00:00
Name string `json:"name"`
Nick string `json:"nick"`
Avatar string `json:"avatar"`
Description string `json:"description"`
EmailAddress string `json:"email_address"`
PowerLevel int `json:"power_level"`
Moments []Moment `json:"moments" gorm:"foreignKey:AuthorID"`
Articles []Article `json:"articles" gorm:"foreignKey:AuthorID"`
Attachments []Attachment `json:"attachments" gorm:"foreignKey:AuthorID"`
LikedMoments []MomentLike `json:"liked_moments"`
DislikedMoments []MomentDislike `json:"disliked_moments"`
LikedArticles []ArticleLike `json:"liked_articles"`
DislikedArticles []ArticleDislike `json:"disliked_articles"`
LikedComments []CommentLike `json:"liked_comments"`
DislikedComments []CommentDislike `json:"disliked_comments"`
RealmIdentities []RealmMember `json:"identities"`
Realms []Realm `json:"realms"`
ExternalID uint `json:"external_id"`
2024-02-01 15:26:17 +00:00
}
2024-02-03 07:20:32 +00:00
type AccountMembership struct {
ID uint `json:"id" gorm:"primaryKey"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Follower Account `json:"follower"`
Following Account `json:"following"`
2024-02-03 07:20:32 +00:00
FollowerID uint
FollowingID uint
}