core/internal/adapter/internal/bunmodel/version.go

44 lines
824 B
Go

package bunmodel
import (
"fmt"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun"
)
type Version struct {
bun.BaseModel `bun:"table:versions,alias:version"`
Code string `bun:"code,pk"`
Name string `bun:"name"`
Host string `bun:"host"`
Timezone string `bun:"timezone"`
}
func (v Version) ToDomain() (domain.Version, error) {
return domain.UnmarshalVersionFromDatabase(
v.Code,
v.Name,
v.Host,
v.Timezone,
)
}
type Versions []Version
func (vs Versions) ToDomain() (domain.Versions, error) {
res := make(domain.Versions, 0, len(vs))
for _, v := range vs {
converted, err := v.ToDomain()
if err != nil {
return nil, fmt.Errorf("couldn't construct domain.Version (version=%s): %w", v.Code, err)
}
res = append(res, converted)
}
return res, nil
}