diff --git a/internal/api/merch/origins.go b/internal/api/merch/origins.go new file mode 100644 index 0000000..e29f0dc --- /dev/null +++ b/internal/api/merch/origins.go @@ -0,0 +1,27 @@ +package merch + +import "encoding/json" + +type Origin int + +const ( + surugaya = (iota + 1) * 1000 + mandarake +) + +var Origins = [...]string{ + "surugaya", + "mandarake", +} + +func (o Origin) String() string { + index := (int(o) / 1000) - 1 + if index < 0 || index >= len(Origins) { + return "unknown" + } + return Origins[index] +} + +func (o Origin) MarshalJSON() ([]byte, error) { + return json.Marshal(o.String()) +}