Files
b2b/app/repos/categoryRepo/categoryRepo.go
2026-03-30 01:02:02 +02:00

45 lines
1.0 KiB
Go

package categoryrepo
import (
"git.ma-al.com/goc_daniel/b2b/app/db"
"git.ma-al.com/goc_daniel/b2b/app/model/dbmodel"
)
type UICategoryRepo interface {
GetCategoryTranslations(ids []uint, idLang uint) (map[uint]string, error)
}
type CategoryRepo struct{}
func New() UICategoryRepo {
return &CategoryRepo{}
}
func (r *CategoryRepo) GetCategoryTranslations(ids []uint, idLang uint) (map[uint]string, error) {
if len(ids) == 0 {
return map[uint]string{}, nil
}
type result struct {
IDCategory int32
Name string
}
var results []result
if err := db.Get().
Model(dbmodel.PsCategoryLang{}).
Select("ps_category_lang.id_category, COALESCE(ps_category_lang.name, '') as name").
Where("ps_category_lang.id_category IN ?", ids).
Where("ps_category_lang.id_lang = ?", idLang).
Scan(&results).Error; err != nil {
return nil, err
}
translations := make(map[uint]string, len(results))
for _, res := range results {
translations[uint(res.IDCategory)] = res.Name
}
return translations, nil
}