add new models, change migration files, prepare to add all new tables from models
This commit is contained in:
63
internal/foundry/temp_models/json/utils.go
Normal file
63
internal/foundry/temp_models/json/utils.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package json
|
||||
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/temp_models/db"
|
||||
)
|
||||
|
||||
func OwnershipToDB(dest *[]db.OwnershipString, src map[string]int) {
|
||||
*dest = make([]db.OwnershipString, len(src))
|
||||
|
||||
i := 0
|
||||
for k, v := range src {
|
||||
(*dest)[i].Key = k
|
||||
(*dest)[i].Value = v
|
||||
i++
|
||||
}
|
||||
}
|
||||
|
||||
func HotbarToDB(dest *[]db.UserHotbar, src map[int]string) {
|
||||
*dest = make([]db.UserHotbar, len(src))
|
||||
|
||||
i := 0
|
||||
for k, v := range src {
|
||||
(*dest)[i].Key = k
|
||||
(*dest)[i].Value = v
|
||||
i++
|
||||
}
|
||||
}
|
||||
|
||||
func PackageWarningsToDB(dest *[]db.PackageWarning, src map[string]PackageWarningsData) {
|
||||
*dest = make([]db.PackageWarning, len(src))
|
||||
|
||||
i := 0
|
||||
for k, v := range src {
|
||||
(*dest)[i].Key = k
|
||||
v.ToDB(&(*dest)[i].Value)
|
||||
i++
|
||||
}
|
||||
}
|
||||
|
||||
type CastableToDB[destType any] interface {
|
||||
ToDB(*destType) bool
|
||||
}
|
||||
|
||||
func CopySliceToDB[destType any, srcType CastableToDB[destType]](dest *[]destType, src []srcType) bool {
|
||||
if dest == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
*dest = make([]destType, len(src))
|
||||
for i := range src {
|
||||
src[i].ToDB(&(*dest)[i])
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func CopySliceToDBParallel[destType any, srcType CastableToDB[destType]](wg *sync.WaitGroup, dest *[]destType, src []srcType) {
|
||||
wg.Add(1)
|
||||
CopySliceToDB(dest, src)
|
||||
wg.Done()
|
||||
}
|
||||
Reference in New Issue
Block a user