api/internal/api/merch/origins/constructor.go
2025-12-15 17:34:17 +03:00

55 lines
1.2 KiB
Go

package origins
import "database/sql"
func AllOriginModels() []interface{} {
return []interface{}{
&OriginSurugaya{},
&OriginMandarake{},
&OriginAmiami{},
}
}
func NewSurugaya(merchUuid, link string) *OriginSurugaya {
return &OriginSurugaya{
BaseOrigin{
DeletedAt: sql.NullTime{},
MerchUuid: merchUuid,
Link: link,
},
}
}
func NewMandarake(merchUuid, link string) *OriginMandarake {
return &OriginMandarake{
BaseOrigin{
DeletedAt: sql.NullTime{},
MerchUuid: merchUuid,
Link: link,
},
}
}
func NewAmiami(merchUuid, link string) *OriginAmiami {
return &OriginAmiami{
BaseOrigin{
DeletedAt: sql.NullTime{},
MerchUuid: merchUuid,
Link: link,
},
}
}
type OriginFactory func(merchUuid, link string) interface{}
var OriginFactories = map[string]OriginFactory{
"surugaya": func(merchUuid, link string) interface{} {
return &OriginSurugaya{BaseOrigin: BaseOrigin{MerchUuid: merchUuid, Link: link}}
},
"mandarake": func(merchUuid, link string) interface{} {
return &OriginMandarake{BaseOrigin: BaseOrigin{MerchUuid: merchUuid, Link: link}}
},
"amiami": func(merchUuid, link string) interface{} {
return &OriginAmiami{BaseOrigin: BaseOrigin{MerchUuid: merchUuid, Link: link}}
},
}