Documentation
¶
Index ¶
- type CreateSubscriptionAddonInput
- type CreateSubscriptionAddonQuantityInput
- type CreateSubscriptionAddonQuantityRepositoryInput
- type CreateSubscriptionAddonRateCardInput
- type CreateSubscriptionAddonRateCardRepositoryInput
- type CreateSubscriptionAddonRepositoryInput
- type ListSubscriptionAddonRepositoryInput
- type ListSubscriptionAddonsInput
- type Service
- type SubscriptionAddon
- type SubscriptionAddonQuantity
- type SubscriptionAddonQuantityRepository
- type SubscriptionAddonRateCard
- type SubscriptionAddonRateCardRepository
- type SubscriptionAddonRepository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateSubscriptionAddonInput ¶
type CreateSubscriptionAddonInput struct {
models.MetadataModel
AddonID string `json:"addonID"`
SubscriptionID string `json:"subscriptionID"`
RateCards []CreateSubscriptionAddonRateCardInput `json:"rateCards"`
InitialQuantity CreateSubscriptionAddonQuantityInput `json:"initialQuantity"`
}
func (CreateSubscriptionAddonInput) Validate ¶
func (i CreateSubscriptionAddonInput) Validate() error
type CreateSubscriptionAddonQuantityInput ¶
type CreateSubscriptionAddonQuantityInput struct {
ActiveFrom time.Time `json:"activeFrom"`
Quantity int `json:"quantity"`
}
func (CreateSubscriptionAddonQuantityInput) Validate ¶
func (i CreateSubscriptionAddonQuantityInput) Validate() error
type CreateSubscriptionAddonQuantityRepositoryInput ¶
type CreateSubscriptionAddonQuantityRepositoryInput struct {
ActiveFrom time.Time `json:"activeFrom"`
Quantity int `json:"quantity"`
}
SubscriptionAddonQuantity
type CreateSubscriptionAddonRateCardRepositoryInput ¶
type CreateSubscriptionAddonRateCardRepositoryInput struct {
AddonRateCardID string `json:"addonRateCardID"`
AffectedSubscriptionItemIDs []string `json:"affectedSubscriptionItemIDs"`
}
SubscriptionAddonRateCard
type CreateSubscriptionAddonRepositoryInput ¶
type CreateSubscriptionAddonRepositoryInput struct {
models.MetadataModel
Name string `json:"name"`
Description *string `json:"description,omitempty"`
AddonID string `json:"addonID"`
SubscriptionID string `json:"subscriptionID"`
}
SubscriptionAddon
type ListSubscriptionAddonRepositoryInput ¶
type ListSubscriptionAddonRepositoryInput struct {
SubscriptionID string `json:"subscriptionID"`
pagination.Page
}
type ListSubscriptionAddonsInput ¶
type ListSubscriptionAddonsInput struct {
SubscriptionID string `json:"subscriptionID"`
pagination.Page
}
func (ListSubscriptionAddonsInput) Validate ¶
func (i ListSubscriptionAddonsInput) Validate() error
type Service ¶
type Service interface {
Create(ctx context.Context, namespace string, input CreateSubscriptionAddonInput) (*SubscriptionAddon, error)
Get(ctx context.Context, id models.NamespacedID) (*SubscriptionAddon, error)
List(ctx context.Context, namespace string, input ListSubscriptionAddonsInput) (pagination.PagedResponse[SubscriptionAddon], error)
ChangeQuantity(ctx context.Context, id models.NamespacedID, input CreateSubscriptionAddonQuantityInput) (*SubscriptionAddon, error)
}
type SubscriptionAddon ¶
type SubscriptionAddon struct {
models.NamespacedID
models.ManagedModel
models.MetadataModel
Name string `json:"name"`
Description *string `json:"description,omitempty"`
// AddonID string `json:"addonID"`
Addon addon.Addon `json:"addon"`
SubscriptionID string `json:"subscriptionID"`
RateCards []SubscriptionAddonRateCard `json:"rateCards"`
Quantities timeutil.Timeline[SubscriptionAddonQuantity] `json:"quantities"`
}
type SubscriptionAddonQuantity ¶
type SubscriptionAddonQuantity struct {
models.NamespacedID
models.ManagedModel
ActiveFrom time.Time `json:"activeFrom"`
Quantity int `json:"quantity"`
}
func (SubscriptionAddonQuantity) AsTimed ¶
func (q SubscriptionAddonQuantity) AsTimed() timeutil.Timed[SubscriptionAddonQuantity]
type SubscriptionAddonQuantityRepository ¶
type SubscriptionAddonQuantityRepository interface {
Create(ctx context.Context, subscriptionAddonID models.NamespacedID, input CreateSubscriptionAddonQuantityRepositoryInput) (*SubscriptionAddonQuantity, error)
}
type SubscriptionAddonRateCard ¶
type SubscriptionAddonRateCard struct {
models.NamespacedID
models.ManagedModel
AddonRateCard addon.RateCard `json:"addonRateCard"`
AffectedSubscriptionItemIDs []string `json:"affectedSubscriptionItemIDs"`
}
type SubscriptionAddonRateCardRepository ¶
type SubscriptionAddonRateCardRepository interface {
CreateMany(ctx context.Context, subscriptionAddonID models.NamespacedID, inputs []CreateSubscriptionAddonRateCardRepositoryInput) ([]SubscriptionAddonRateCard, error)
}
type SubscriptionAddonRepository ¶
type SubscriptionAddonRepository interface {
Create(ctx context.Context, namespace string, input CreateSubscriptionAddonRepositoryInput) (*models.NamespacedID, error)
Get(ctx context.Context, id models.NamespacedID) (*SubscriptionAddon, error)
List(ctx context.Context, namespace string, filter ListSubscriptionAddonRepositoryInput) (pagination.PagedResponse[SubscriptionAddon], error)
}
Click to show internal directories.
Click to hide internal directories.