Beginning to systematically add CRUD database functions.
This commit is contained in:
parent
98a53d6590
commit
20106b1f3f
3 changed files with 291 additions and 33 deletions
|
@ -105,6 +105,7 @@ func CreateOrUpdateUser(context *gin.Context) {
|
||||||
AvatarDecoration: currentDiscordUser.Avatar_Decoration_Data.Asset,
|
AvatarDecoration: currentDiscordUser.Avatar_Decoration_Data.Asset,
|
||||||
LoginToken: string(oauthTokenJSON),
|
LoginToken: string(oauthTokenJSON),
|
||||||
LoggedIn: true,
|
LoggedIn: true,
|
||||||
|
ApiKey: nil,
|
||||||
}
|
}
|
||||||
if databasecommands.GetDatabaseUserExists(GlobalDatabase, currentDiscordUser.Id) {
|
if databasecommands.GetDatabaseUserExists(GlobalDatabase, currentDiscordUser.Id) {
|
||||||
dbOAuthToken := databasecommands.GetDatabaseUserToken(GlobalDatabase, currentDiscordUser.Id)
|
dbOAuthToken := databasecommands.GetDatabaseUserToken(GlobalDatabase, currentDiscordUser.Id)
|
||||||
|
|
|
@ -44,6 +44,14 @@ func CreateDatabaseUser(db *gorm.DB, user databasemodels.User) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateDatabasePerson(db *gorm.DB, person databasemodels.Person) error {
|
||||||
|
result := db.Create(&person)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func CreateDatabaseGroup(db *gorm.DB, group databasemodels.Group) error {
|
func CreateDatabaseGroup(db *gorm.DB, group databasemodels.Group) error {
|
||||||
result := db.Create(&group)
|
result := db.Create(&group)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
|
@ -52,8 +60,39 @@ func CreateDatabaseGroup(db *gorm.DB, group databasemodels.Group) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseCharacter(db *gorm.DB, character databasemodels.Character) error {
|
||||||
|
result := db.Create(&character)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseRole(db *gorm.DB, role databasemodels.Role) error {
|
||||||
|
result := db.Create(&role)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseTier(db *gorm.DB, tier databasemodels.Tier) error {
|
||||||
|
result := db.Create(&tier)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseFunctionSet(db *gorm.DB, functionSet databasemodels.FunctionSet) error {
|
||||||
|
result := db.Create(&functionSet)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func CreateDatabaseFunction(db *gorm.DB, function databasemodels.Function) error {
|
func CreateDatabaseFunction(db *gorm.DB, function databasemodels.Function) error {
|
||||||
log.Println(function)
|
|
||||||
result := db.Create(&function)
|
result := db.Create(&function)
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
return result.Error
|
return result.Error
|
||||||
|
@ -69,6 +108,46 @@ func CreateDatabaseFunctionTag(db *gorm.DB, functionTag databasemodels.FunctionT
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseInventorySlot(db *gorm.DB, inventorySlot databasemodels.InventorySlot) error {
|
||||||
|
result := db.Create(&inventorySlot)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseItem(db *gorm.DB, item databasemodels.Item) error {
|
||||||
|
result := db.Create(&item)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseItemTag(db *gorm.DB, itemTag databasemodels.ItemTag) error {
|
||||||
|
result := db.Create(&itemTag)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseCustomization(db *gorm.DB, customization databasemodels.Customization) error {
|
||||||
|
result := db.Create(&customization)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func CreateDatabaseSchematic(db *gorm.DB, schematic databasemodels.Schematic) error {
|
||||||
|
result := db.Create(&schematic)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Read Functions
|
// Read Functions
|
||||||
|
|
||||||
func GetDatabaseUserToken(db *gorm.DB, id string) string {
|
func GetDatabaseUserToken(db *gorm.DB, id string) string {
|
||||||
|
@ -103,8 +182,7 @@ func GetDatabaseUserLoggedIn(db *gorm.DB, oauthTokenJSON string) bool {
|
||||||
|
|
||||||
func GetDatabaseUserLoggedInFromDiscordId(db *gorm.DB, discordId string) bool {
|
func GetDatabaseUserLoggedInFromDiscordId(db *gorm.DB, discordId string) bool {
|
||||||
var queryUser databasemodels.User
|
var queryUser databasemodels.User
|
||||||
var result *gorm.DB
|
result := db.Where("id = ?", discordId).Take(&queryUser)
|
||||||
result = db.Where("id = ?", discordId).Take(&queryUser)
|
|
||||||
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
|
@ -112,6 +190,24 @@ func GetDatabaseUserLoggedInFromDiscordId(db *gorm.DB, discordId string) bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetDatabasePerson(db *gorm.DB, inputPerson string) databasemodels.Person {
|
||||||
|
var outputPerson databasemodels.Person
|
||||||
|
result := db.Model(&databasemodels.Person{}).Where("name = ?", inputPerson).Take(&outputPerson)
|
||||||
|
if result.Error != nil {
|
||||||
|
return databasemodels.Person{}
|
||||||
|
}
|
||||||
|
return outputPerson
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDatabasePersons(db *gorm.DB) []databasemodels.Person {
|
||||||
|
var outputPersons []databasemodels.Person
|
||||||
|
db.Find(&outputPersons)
|
||||||
|
for index, outputPerson := range outputPersons {
|
||||||
|
db.Model(&outputPerson).Association("Groups").Find(&outputPersons[index].Groups)
|
||||||
|
}
|
||||||
|
return outputPersons
|
||||||
|
}
|
||||||
|
|
||||||
func GetDatabaseGroup(db *gorm.DB, inputGroup string) databasemodels.Group {
|
func GetDatabaseGroup(db *gorm.DB, inputGroup string) databasemodels.Group {
|
||||||
var outputGroup databasemodels.Group
|
var outputGroup databasemodels.Group
|
||||||
result := db.Model(&databasemodels.Group{}).Where("name = ?", inputGroup).Take(&outputGroup)
|
result := db.Model(&databasemodels.Group{}).Where("name = ?", inputGroup).Take(&outputGroup)
|
||||||
|
@ -135,6 +231,64 @@ func GetDatabaseGroups(db *gorm.DB) []string {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetDatabaseCharacter(db *gorm.DB, inputCharacter string) databasemodels.Character {
|
||||||
|
var outputCharacter databasemodels.Character
|
||||||
|
result := db.Model(&databasemodels.Character{}).Where("name = ?", inputCharacter).Take(&outputCharacter)
|
||||||
|
if result.Error != nil {
|
||||||
|
return databasemodels.Character{}
|
||||||
|
}
|
||||||
|
return outputCharacter
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDatabaseCharacters(db *gorm.DB) []databasemodels.Character {
|
||||||
|
var outputCharacters []databasemodels.Character
|
||||||
|
db.Find(&outputCharacters)
|
||||||
|
for index, outputCharacter := range outputCharacters {
|
||||||
|
db.Model(&outputCharacter).Association("Owners").Find(&outputCharacters[index].Owners)
|
||||||
|
db.Model(&outputCharacter).Association("Roles").Find(&outputCharacters[index].Roles)
|
||||||
|
db.Model(&outputCharacter).Association("FunctionSets").Find(&outputCharacters[index].FunctionSets)
|
||||||
|
db.Model(&outputCharacter).Association("Inventory").Find(&outputCharacters[index].Inventory)
|
||||||
|
}
|
||||||
|
return outputCharacters
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDatabaseRole(db *gorm.DB, inputRole string) databasemodels.Role {
|
||||||
|
var outputRole databasemodels.Role
|
||||||
|
result := db.Model(&databasemodels.Role{}).Where("name = ?", inputRole).Take(&outputRole)
|
||||||
|
if result.Error != nil {
|
||||||
|
return databasemodels.Role{}
|
||||||
|
}
|
||||||
|
return outputRole
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDatabaseRoles(db *gorm.DB) []databasemodels.Role {
|
||||||
|
var outputRoles []databasemodels.Role
|
||||||
|
db.Find(&outputRoles)
|
||||||
|
for index, outputRole := range outputRoles {
|
||||||
|
db.Model(&outputRole).Association("Tiers").Find(&outputRoles[index].Tiers)
|
||||||
|
db.Model(&outputRole).Association("Visibility").Find(&outputRoles[index].Visibility)
|
||||||
|
}
|
||||||
|
return outputRoles
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDatabaseTier(db *gorm.DB, inputTier int) databasemodels.Tier {
|
||||||
|
var outputTier databasemodels.Tier
|
||||||
|
result := db.Model(&databasemodels.Tier{}).Where("id = ?", inputTier).Take(&outputTier)
|
||||||
|
if result.Error != nil {
|
||||||
|
return databasemodels.Tier{}
|
||||||
|
}
|
||||||
|
return outputTier
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDatabaseTiers(db *gorm.DB) []databasemodels.Tier {
|
||||||
|
var outputTiers []databasemodels.Tier
|
||||||
|
db.Find(&outputTiers)
|
||||||
|
for index, outputTier := range outputTiers {
|
||||||
|
db.Model(&outputTier).Association("FunctionSets").Find(&outputTiers[index].FunctionSets)
|
||||||
|
}
|
||||||
|
return outputTiers
|
||||||
|
}
|
||||||
|
|
||||||
func GetDatabaseFunction(db *gorm.DB, inputFunction string) databasemodels.Function {
|
func GetDatabaseFunction(db *gorm.DB, inputFunction string) databasemodels.Function {
|
||||||
var outputFunction databasemodels.Function
|
var outputFunction databasemodels.Function
|
||||||
result := db.Model(&databasemodels.Function{}).Where("name = ?", inputFunction).Take(&outputFunction)
|
result := db.Model(&databasemodels.Function{}).Where("name = ?", inputFunction).Take(&outputFunction)
|
||||||
|
@ -147,15 +301,10 @@ func GetDatabaseFunction(db *gorm.DB, inputFunction string) databasemodels.Funct
|
||||||
func GetDatabaseFunctions(db *gorm.DB) []databasemodels.Function {
|
func GetDatabaseFunctions(db *gorm.DB) []databasemodels.Function {
|
||||||
var outputFunctions []databasemodels.Function
|
var outputFunctions []databasemodels.Function
|
||||||
db.Find(&outputFunctions)
|
db.Find(&outputFunctions)
|
||||||
for outputFunctionId, outputFunction := range outputFunctions {
|
for index, outputFunction := range outputFunctions {
|
||||||
var outputFunctionTags []databasemodels.FunctionTag
|
db.Model(&outputFunction).Association("Tags").Find(&outputFunctions[index].Tags)
|
||||||
db.Model(&outputFunction).Association("Tags").Find(&outputFunctionTags)
|
db.Model(&outputFunction).Association("Requirements").Find(&outputFunctions[index].Requirements)
|
||||||
var outputFunctionRequirements []databasemodels.Function
|
|
||||||
db.Model(&outputFunction).Association("Requirements").Find(&outputFunctionRequirements)
|
|
||||||
outputFunctions[outputFunctionId].Tags = outputFunctionTags
|
|
||||||
outputFunctions[outputFunctionId].Requirements = outputFunctionRequirements
|
|
||||||
}
|
}
|
||||||
log.Printf("Functions: %v", outputFunctions)
|
|
||||||
return outputFunctions
|
return outputFunctions
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,4 +345,108 @@ func UpdateDatabaseUser(db *gorm.DB, user databasemodels.User) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UpdateDatabasePerson(db *gorm.DB, person databasemodels.Person) error {
|
||||||
|
result := db.Save(&person)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseGroup(db *gorm.DB, group databasemodels.Group) error {
|
||||||
|
result := db.Save(&group)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseCharacter(db *gorm.DB, character databasemodels.Character) error {
|
||||||
|
result := db.Save(&character)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseRole(db *gorm.DB, role databasemodels.Role) error {
|
||||||
|
result := db.Save(&role)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseTier(db *gorm.DB, tier databasemodels.Tier) error {
|
||||||
|
result := db.Save(&tier)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseFunctionSet(db *gorm.DB, functionSet databasemodels.FunctionSet) error {
|
||||||
|
result := db.Save(&functionSet)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseFunction(db *gorm.DB, function databasemodels.Function) error {
|
||||||
|
result := db.Save(&function)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseFunctionTag(db *gorm.DB, functionTag databasemodels.FunctionTag) error {
|
||||||
|
result := db.Save(&functionTag)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseInventorySlot(db *gorm.DB, inventoySlot databasemodels.InventorySlot) error {
|
||||||
|
result := db.Save(&inventoySlot)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseItem(db *gorm.DB, item databasemodels.Item) error {
|
||||||
|
result := db.Save(&item)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseItemTag(db *gorm.DB, itemTag databasemodels.ItemTag) error {
|
||||||
|
result := db.Save(&itemTag)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseCustomization(db *gorm.DB, customization databasemodels.Customization) error {
|
||||||
|
result := db.Save(&customization)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateDatabaseSchematic(db *gorm.DB, schematic databasemodels.Schematic) error {
|
||||||
|
result := db.Save(&schematic)
|
||||||
|
if result.Error != nil {
|
||||||
|
return result.Error
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Delete Functions
|
// Delete Functions
|
||||||
|
|
|
@ -11,89 +11,93 @@ type User struct {
|
||||||
AvatarDecoration string `json:"avatar_decoration"`
|
AvatarDecoration string `json:"avatar_decoration"`
|
||||||
LoginToken string `json:"login_token"`
|
LoginToken string `json:"login_token"`
|
||||||
LoggedIn bool `json:"logged_in"`
|
LoggedIn bool `json:"logged_in"`
|
||||||
|
ApiKey []struct {
|
||||||
|
Name string `gorm:"primaryKey uniqueIndex" json:"name"`
|
||||||
|
Key string `json:"key"`
|
||||||
|
} `gorm:"foreignKey:Name" json:"api_key"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Person struct {
|
type Person struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `json:"name"`
|
Name string `gorm:"primaryKey" json:"name"`
|
||||||
Groups []Group `gorm:"many2many:person_group_associations" json:"groups"` // Unique
|
Groups []Group `gorm:"many2many:person_group_associations" json:"groups"` // Unique
|
||||||
}
|
}
|
||||||
|
|
||||||
type Group struct {
|
type Group struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `json:"name"`
|
Name string `gorm:"primaryKey" json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Character struct {
|
type Character struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `gorm:"uniqueIndex" json:"name"`
|
Name string `gorm:"primaryKey; uniqueIndex" json:"name"`
|
||||||
Owners []Person `gorm:"many2many:character_owner_associations" json:"owners"` // Unique
|
Owners []Person `gorm:"many2many:character_owner_associations" json:"owners"` // Unique
|
||||||
Roles []Role `gorm:"many2many:character_role_associations" json:"roles"` // Unique
|
Roles []Role `gorm:"many2many:character_role_associations" json:"roles"` // Unique
|
||||||
FunctionSets []FunctionSet `gorm:"foreignkey:id; references:Name" json:"function_sets"`
|
FunctionSets []FunctionSet `gorm:"many2many:character_functionset_associations" json:"function_sets"`
|
||||||
Inventory []InventorySlot `gorm:"foreignkey:id; references:Name" json:"inventory"`
|
Inventory []InventorySlot `gorm:"many2many:character_inventory_associations" json:"inventory"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Role struct {
|
type Role struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `json:"name"`
|
Name string `gorm:"primaryKey" json:"name"`
|
||||||
Tiers []Tier `gorm:"foreignkey:id; references:Name" json:"tiers"`
|
Tiers []Tier `gorm:"many2many:role_tier_associations" json:"tiers"`
|
||||||
Visibility []Group `gorm:"foreignkey:Name" json:"visibility"` // Unique
|
Visibility []Group `gorm:"many2many:role_visibility_associations" json:"visibility"` // Unique
|
||||||
}
|
}
|
||||||
|
|
||||||
type Tier struct {
|
type Tier struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
FunctionSets []FunctionSet `gorm:"foreignkey:id; references:id" json:"function_sets"`
|
FunctionSets []FunctionSet `gorm:"many2many:tier_functionset_associations" json:"function_sets"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type FunctionSet struct {
|
type FunctionSet struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Functions []Function `gorm:"foreignkey:Name" json:"functions"`
|
Functions []Function `gorm:"many2many:functionset_function_associations" json:"functions"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Function struct {
|
type Function struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `gorm:"primaryKey" gorm:"uniqueIndex" json:"name"`
|
Name string `gorm:"primaryKey uniqueIndex" json:"name"`
|
||||||
Tags []FunctionTag `gorm:"many2many:function_tag_associations" json:"tags"`
|
Tags []FunctionTag `gorm:"many2many:function_tag_associations" json:"tags"`
|
||||||
Requirements []Function `gorm:"many2many:function_requirement_associations" json:"requirements"`
|
Requirements []Function `gorm:"many2many:function_requirement_associations" json:"requirements"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type FunctionTag struct {
|
type FunctionTag struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `gorm:"primaryKey" gorm:"uniqueIndex" json:"name"`
|
Name string `gorm:"primaryKey uniqueIndex" json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type InventorySlot struct {
|
type InventorySlot struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Item Item `gorm:"foreignkey:Name" json:"item"`
|
Item Item `gorm:"foreignKey:Name" json:"item"`
|
||||||
Quantity int64 `json:"quantity"` // Positive
|
Quantity int64 `json:"quantity"` // Positive
|
||||||
}
|
}
|
||||||
|
|
||||||
type Item struct {
|
type Item struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `json:"name"`
|
Name string `gorm:"primaryKey uniqueIndex" json:"name"`
|
||||||
Functions []Function `gorm:"foreignkey:Name" json:"functions"`
|
Functions []Function `gorm:"many2many:item_function_associations" json:"functions"`
|
||||||
FlavorText string `json:"flavor_text"`
|
FlavorText string `json:"flavor_text"`
|
||||||
RulesDescription string `json:"rules_description"`
|
RulesDescription string `json:"rules_description"`
|
||||||
PhysrepRequirements string `json:"physrep_requirements"`
|
PhysrepRequirements string `json:"physrep_requirements"`
|
||||||
Tags []ItemTag `gorm:"foreignkey:Name" json:"tags"` // Unique
|
Tags []ItemTag `gorm:"many2many:item_tag_associations" json:"tags"` // Unique
|
||||||
Customizations []Customization `gorm:"foreignkey:Name" json:"customizations"`
|
Customizations []Customization `gorm:"many2many:item_customization_associations" json:"customizations"`
|
||||||
Visibility []Group `gorm:"foreignkey:Name" json:"visibility"` // Unique
|
Visibility []Group `gorm:"many2many:item_visibility_associations" json:"visibility"` // Unique
|
||||||
}
|
}
|
||||||
|
|
||||||
type ItemTag struct {
|
type ItemTag struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `gorm:"primaryKey" json:"name"`
|
Name string `gorm:"primaryKey uniqueIndex" json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Customization struct {
|
type Customization struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Functions []Function `gorm:"foreignkey:Name" json:"functions"`
|
Functions []Function `gorm:"many2many:customization_function_associations" json:"functions"`
|
||||||
FlavorText string `json:"flavor_text"`
|
FlavorText string `json:"flavor_text"`
|
||||||
RulesDescription string `json:"rules_description"`
|
RulesDescription string `json:"rules_description"`
|
||||||
PhysrepRequirements string `json:"physrep_requirements"`
|
PhysrepRequirements string `json:"physrep_requirements"`
|
||||||
Tags []ItemTag `gorm:"foreignkey:Name" json:"tags"` // Unique
|
Tags []ItemTag `gorm:"many2many:customization_tag_associations" json:"tags"` // Unique
|
||||||
Visibility []Group `gorm:"foreignkey:Name" json:"visibility"` // Unique
|
Visibility []Group `gorm:"many2many:customization_visibility_associations" json:"visibility"` // Unique
|
||||||
}
|
}
|
||||||
|
|
||||||
type Schematic struct {
|
type Schematic struct {
|
||||||
|
|
Loading…
Reference in a new issue