84 lines
1.9 KiB
Go
84 lines
1.9 KiB
Go
package json
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"gitea.local.lab/Lbenedar/foundry_helper_service/internal/foundry/temp_models/db"
|
|
)
|
|
|
|
type Pack struct {
|
|
Name string `json:"name"`
|
|
Label string `json:"label"`
|
|
Banner string `json:"banner"`
|
|
Path string `json:"path"`
|
|
Type string `json:"type"`
|
|
System string `json:"system"`
|
|
Ownership Ownership `json:"ownership"`
|
|
PackageType string `json:"packageType,omitempty"`
|
|
PackageName string `json:"packageName,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Index []*Index `json:"index"`
|
|
Folders []*PackFolder `json:"folders"`
|
|
// SystemPacksFlags SystemPacksFlags `json:"flags"`
|
|
}
|
|
|
|
func (p *Pack) ToDB(dest **db.Pack) bool {
|
|
if dest == nil {
|
|
return false
|
|
}
|
|
|
|
pack := &db.Pack{
|
|
Name: p.Name,
|
|
Label: p.Label,
|
|
Banner: p.Banner,
|
|
Path: p.Path,
|
|
Type: p.Type,
|
|
System: p.System,
|
|
PackageType: p.PackageType,
|
|
PackageName: p.PackageName,
|
|
ID: p.Id,
|
|
}
|
|
|
|
p.Ownership.ToDB(&pack.Ownership)
|
|
|
|
wg := sync.WaitGroup{}
|
|
go CopySliceToDBParallel(&wg, &pack.Index, p.Index)
|
|
go CopySliceToDBParallel(&wg, &pack.Folders, p.Folders)
|
|
wg.Wait()
|
|
|
|
*dest = pack
|
|
|
|
return true
|
|
}
|
|
|
|
type PackFolder struct {
|
|
ID string `json:"_id"`
|
|
Color any `json:"color"`
|
|
Description string `json:"description"`
|
|
Folder any `json:"folder"`
|
|
Name string `json:"name"`
|
|
Sort int `json:"sort"`
|
|
Sorting string `json:"sorting"`
|
|
Type string `json:"type"`
|
|
// Packs0FoldersFlags any `json:"flags"`
|
|
}
|
|
|
|
func (p *PackFolder) ToDB(dest **db.PackFolder) bool {
|
|
if dest == nil {
|
|
return false
|
|
}
|
|
|
|
packFolder := &db.PackFolder{
|
|
ID: p.ID,
|
|
Description: p.Description,
|
|
Name: p.Name,
|
|
Sort: p.Sort,
|
|
Sorting: p.Sorting,
|
|
Type: p.Type,
|
|
}
|
|
|
|
*dest = packFolder
|
|
|
|
return true
|
|
}
|