From 8ced479113fc0e527b2c180be75194237d1690cf Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Tue, 11 Jan 2022 14:14:06 -0800 Subject: [PATCH] adding more models --- net/server/internal/store/db_schema.go | 183 +++++++++++++++++++++---- 1 file changed, 158 insertions(+), 25 deletions(-) diff --git a/net/server/internal/store/db_schema.go b/net/server/internal/store/db_schema.go index 6e731943..c4f501cb 100644 --- a/net/server/internal/store/db_schema.go +++ b/net/server/internal/store/db_schema.go @@ -5,46 +5,179 @@ import "gorm.io/gorm" func AutoMigrate(db *gorm.DB) { db.AutoMigrate(&App{}); db.AutoMigrate(&Account{}); - db.AutoMigrate(&AccountApp{}); + db.AutoMigrate(&AccountToken{}); + db.AutoMigrate(&Group{}); + db.AutoMigrate(&Label{}); + db.AutoMigrate(&Card{}); + db.AutoMigrate(&CardGroup{}); + db.AutoMigrate(&LabelGroup{}); + db.AutoMigrate(&Article{}); + db.AutoMigrate(&ArticleAsset{}); + db.AutoMigrate(&ArticleTag{}); + db.AutoMigrate(&ArticleGroup{}); + db.AutoMigrate(&ArticleLabel{}); +} + +type AccountToken struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + AccountID uint `gorm:"index"` + TokenType string `gorm:"not null; ` + Token string `gorm:"not null;uniqueIndex"` + Created int64 `gorm:"autoCreateTime"` + Account Account } type Account struct { - ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` - Did string `gorm:"not null"` - Username string `gorm:"not null"` - Password string `gorm:"not null"` - Salt string `gorm:"not null"` + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + Did string `gorm:"not null"` + Username string `gorm:"not null;uniqueIndex"` + Password string `gorm:"not null"` + Salt string `gorm:"not null"` Name string Description string Location string Image string - profileRevision uint64 - contentRevision uint64 - viewRevision uint64 - groupRevision uint64 - labelRevision uint64 - cardRevision uint64 - dialogueRevision uint64 - insightRevision uint64 - Created int64 `gorm:"autoCreateTime"` - AccountApps []AccountApp + profileRevision uint64 `gorm:"not null"` + contentRevision uint64 `gorm:"not null"` + viewRevision uint64 `gorm:"not null"` + groupRevision uint64 `gorm:"not null"` + labelRevision uint64 `gorm:"not null"` + cardRevision uint64 `gorm:"not null"` + dialogueRevision uint64 `gorm:"not null"` + insightRevision uint64 `gorm:"not null"` + Created int64 `gorm:"autoCreateTime"` + Apps []App } type App struct { - ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + AccountID uint `gorm:"index"` Name string Description string Image string Url string - Created int64 `gorm:"autoCreateTime"` + Token string `gorm:"not null;index"` + Created int64 `gorm:"autoCreateTime"` + Account Account } -type AccountApp struct { - ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` - AccountID uint - AppID uint - Token string `gorm:"not null"` - Created int64 `gorm:"autoCreateTime"` - App App +type Group struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + GroupId string `gorm:"not null;index:group,unqiue"` + AccountID uint `gorm:"not null;index:group,unique"` + Revision int64 `gorm:"not null"` + DataType string `gorm:"index"` + Data string + Created int64 `gorm:"autoCreateTime"` + Updated int64 `gorm:"autoUpdateTime"` } +type Label struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + LabelId string `gorm:"not null;index:label,unique"` + AccountID uint `gorm:"not null;index:label,unique"` + Revision int64 `gorm:"not null"` + DataType string `gorm:"index"` + Data string + Created int64 `gorm:"autoCreateTime"` + Updated int64 `gorm:"autoUpdateTime"` +} + +type Card struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + CardId string `gorm:"not null;index:card,unique"` + AccountID uint `gorm:"not null;index:card,unique"` + DID string `gorm:"not null"` + Username string + Name string + Description string + Location string + Revision uint64 `gorm:"not null"` + Image string + Node string `gorm:"not null"` + Status string `gorm:"not null"` + Token string + Created int64 `gorm:"autoCreateTime"` + Updated int64 `gorm:"autoUpdateTime"` + Groups []Group `gorm:"many2many:card_groups;"` +} + +type CardGroup struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + CardID uint `gorm:"not null;index:cardgroup,unique"` + GroupID uint `gorm:"not null;index:cardgroup,unique"` + Card Card + Group Group +} + +type LabelGroup struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + LabelID uint `gorm:"not null;index:labelgroup,unique"` + GroupID uint `gorm:"not null;index:labelgroup,unique"` + Label Label + Group Group +} + +type Article struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + ArticleId string `gorm:"not null;index:article,unique"` + AccountID uint `gorm:"not null;index:article,unique"` + Revision int64 `gorm:"not null"` + DataType string `gorm:"index"` + Data string + Status string `gorm:"not null;index"` + Created int64 `gorm:"autoCreateTime"` + Updated int64 `gorm:"autoUpdateTime"` + TagUpdated int64 `gorm:"not null"` + TagRevision uint64 `gorm:"not null"` + ArticleTags []ArticleTag +} + +type ArticleAsset struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + AssetId string `gorm:"not null;index:articleasset,unique"` + ArticleID uint `gorm:"not null;index:articleasset,unique"` + Status string `gorm:"not null;index"` + Size uint64 + Crc uint32 + Transform string + TransformId string + TransformData string + Created int64 `gorm:"autoCreateTime"` + Article Article +} + +type ArticleTag struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + TagId string `gorm:"not null;index:articletag,unique"` + ArticleID uint `gorm:"not null;index:articletag,unique"` + CardID uint + Revision int64 `gorm:"not null"` + DataType string `gorm:"index"` + Data string + Created int64 `gorm:"autoCreateTime"` + Updated int64 `gorm:"autoUpdateTime"` + Article Article + Card Card +} + +type ArticleGroup struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + ArticleID uint `gorm:"not null;index"` + GroupID uint `gorm:"not null;index"` + Article Article + Group Group +} + +type ArticleLabel struct { + ID uint `gorm:"primaryKey;not null;unique;autoIncrement"` + ArticleID uint `gorm:"not null;index"` + LabelID uint `gorm:"not null;index"` + Article Article + Label Label +} + + + + +