Files
Foundry-Scrapping-API/internal/foundry/temp_models/json/utils.go
2026-04-16 18:30:00 +03:00

64 lines
1.2 KiB
Go

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()
}