File size: 949 Bytes
d6f631f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package subscriptionaddon
import (
"errors"
"time"
"github.com/openmeterio/openmeter/pkg/models"
"github.com/openmeterio/openmeter/pkg/timeutil"
)
type SubscriptionAddonQuantity struct {
models.NamespacedID
models.ManagedModel
ActiveFrom time.Time `json:"activeFrom"`
Quantity int `json:"quantity"`
}
func (q SubscriptionAddonQuantity) AsTimed() timeutil.Timed[SubscriptionAddonQuantity] {
return timeutil.AsTimed(func(q SubscriptionAddonQuantity) time.Time {
return q.ActiveFrom
})(q)
}
type CreateSubscriptionAddonQuantityInput struct {
ActiveFrom time.Time `json:"activeFrom"`
Quantity int `json:"quantity"`
}
func (i CreateSubscriptionAddonQuantityInput) Validate() error {
var errs []error
if i.ActiveFrom.IsZero() {
errs = append(errs, errors.New("activeFrom is required"))
}
if i.Quantity < 0 {
errs = append(errs, errors.New("quantity has to be at least 0"))
}
return errors.Join(errs...)
}
|