2023-08-04 13:34:18 +02:00
|
|
|
package model
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/h44z/wg-portal/internal"
|
|
|
|
"github.com/h44z/wg-portal/internal/domain"
|
|
|
|
)
|
|
|
|
|
2024-10-15 15:44:47 +02:00
|
|
|
type ConfigOption[T any] struct {
|
|
|
|
Value T `json:"Value"`
|
|
|
|
Overridable bool `json:"Overridable"`
|
2023-08-04 13:34:18 +02:00
|
|
|
}
|
|
|
|
|
2024-10-15 15:44:47 +02:00
|
|
|
func ConfigOptionFromDomain[T any](opt domain.ConfigOption[T]) ConfigOption[T] {
|
|
|
|
return ConfigOption[T]{
|
2023-08-04 13:34:18 +02:00
|
|
|
Value: opt.Value,
|
|
|
|
Overridable: opt.Overridable,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-10-15 15:44:47 +02:00
|
|
|
func ConfigOptionToDomain[T any](opt ConfigOption[T]) domain.ConfigOption[T] {
|
|
|
|
return domain.ConfigOption[T]{
|
2023-08-04 13:34:18 +02:00
|
|
|
Value: opt.Value,
|
|
|
|
Overridable: opt.Overridable,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-10-15 15:44:47 +02:00
|
|
|
func StringSliceConfigOptionFromDomain(opt domain.ConfigOption[string]) ConfigOption[[]string] {
|
|
|
|
return ConfigOption[[]string]{
|
2023-08-04 13:34:18 +02:00
|
|
|
Value: internal.SliceString(opt.Value),
|
|
|
|
Overridable: opt.Overridable,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-10-15 15:44:47 +02:00
|
|
|
func StringSliceConfigOptionToDomain(opt ConfigOption[[]string]) domain.ConfigOption[string] {
|
|
|
|
return domain.ConfigOption[string]{
|
2023-08-04 13:34:18 +02:00
|
|
|
Value: internal.SliceToString(opt.Value),
|
|
|
|
Overridable: opt.Overridable,
|
|
|
|
}
|
|
|
|
}
|