add new models, change migration files, prepare to add all new tables from models

This commit is contained in:
lbenedar
2026-04-15 17:01:30 +03:00
parent 5bb592ea8a
commit 69d3d38ab7
95 changed files with 5371 additions and 12 deletions

View File

@@ -0,0 +1,79 @@
package json
import (
"sync"
"gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/temp_models/db"
)
type Game struct {
UserID string `json:"userId"`
Release Release `json:"release"`
World World `json:"world"`
System System `json:"system"`
Modules []*Module `json:"modules"`
DemoMode bool `json:"demoMode"`
IdleLogout bool `json:"idleLogout"`
Addresses Addresses `json:"addresses"`
Files Files `json:"files"`
Options GameOptions `json:"options"`
ActiveUsers []string `json:"activeUsers"`
Paused bool `json:"paused"`
PackageWarnings map[string]PackageWarningsData `json:"packageWarnings"`
Packs []*Pack `json:"packs"`
Messages []*Message `json:"messages,omitempty"`
Combats []*Combat `json:"combats"`
CardDeck []*CardDeck `json:"cards"`
Users []*User `json:"users"`
Macros []*Macro `json:"macros"`
Folders []*WorldFolder `json:"folders"`
Items []*Item `json:"items"`
Settings []*Setting `json:"settings"`
Journals []*Journal `json:"journal"`
Tables []*Table `json:"tables"`
Playlists []*Playlist `json:"playlists"`
Scenes []*Scene `json:"scenes"`
Actors []*Actor `json:"actors"`
CoreUpdate CoreUpdate `json:"coreUpdate"`
SystemUpdate SystemUpdate `json:"systemUpdate"`
// Model Model `json:"model"`
// Template Template `json:"template"`
}
func (g *Game) ToDB(dest *db.Game) bool {
dest.UserID = g.UserID
dest.DemoMode = g.DemoMode
dest.IdleLogout = g.IdleLogout
dest.Paused = g.Paused
PackageWarningsToDB(&dest.PackageWarnings, g.PackageWarnings)
g.Addresses.ToDB(&dest.Addresses)
g.Files.ToDB(&dest.Files)
g.Release.ToDB(&dest.Release)
g.World.ToDB(&dest.World)
g.System.ToDB(&dest.System)
g.Options.ToDB(&dest.Options)
g.CoreUpdate.ToDB(&dest.CoreUpdate)
g.SystemUpdate.ToDB(&dest.SystemUpdate)
copy(dest.ActiveUsers, g.ActiveUsers)
wg := sync.WaitGroup{}
go CopySliceToDBParallel(&wg, &dest.Modules, g.Modules)
go CopySliceToDBParallel(&wg, &dest.Packs, g.Packs)
go CopySliceToDBParallel(&wg, &dest.Messages, g.Messages)
go CopySliceToDBParallel(&wg, &dest.Combats, g.Combats)
go CopySliceToDBParallel(&wg, &dest.CardDeck, g.CardDeck)
go CopySliceToDBParallel(&wg, &dest.Users, g.Users)
go CopySliceToDBParallel(&wg, &dest.Macros, g.Macros)
go CopySliceToDBParallel(&wg, &dest.Folders, g.Folders)
go CopySliceToDBParallel(&wg, &dest.Items, g.Items)
go CopySliceToDBParallel(&wg, &dest.Settings, g.Settings)
go CopySliceToDBParallel(&wg, &dest.Journals, g.Journals)
go CopySliceToDBParallel(&wg, &dest.Tables, g.Tables)
go CopySliceToDBParallel(&wg, &dest.Playlists, g.Playlists)
go CopySliceToDBParallel(&wg, &dest.Actors, g.Actors)
// go CopySliceToDBParallel(&wg, &dest.Scenes, g.Scenes)
wg.Wait()
return true
}