package domain import "fmt" type DateInterval string var ( MonthInterval DateInterval = "month" WeekInterval DateInterval = "week" DayInterval DateInterval = "day" ) func (d DateInterval) IsValid() bool { switch d { case MonthInterval, WeekInterval, DayInterval: return true default: return false } } func ParseDateInterval(val string) (DateInterval, error) { d := DateInterval(val) if !d.IsValid() { return "", fmt.Errorf("invalid date interval: %q", val) } return d, nil }