Leon4gr45's picture
Upload folder using huggingface_hub (part 3)
1c4c66b verified
Raw
History Blame Contribute Delete
1.57 kB
package subscriptionsync
import (
"context"
"time"
"github.com/openmeterio/openmeter/openmeter/billing"
"github.com/openmeterio/openmeter/openmeter/subscription"
"github.com/openmeterio/openmeter/pkg/models"
)
type Service interface {
EventHandler
SyncService
SyncStateService
}
type SyncService interface {
SyncByViewAndInvoiceCustomer(ctx context.Context, view subscription.SubscriptionView, asOf time.Time) error
SyncByIDAndInvoiceCustomer(ctx context.Context, subscriptionID models.NamespacedID, asOf time.Time) error
SyncByView(ctx context.Context, view subscription.SubscriptionView, asOf time.Time, opts ...SynchronizeSubscriptionOption) error
SyncByID(ctx context.Context, subscriptionID models.NamespacedID, asOf time.Time, opts ...SynchronizeSubscriptionOption) error
}
type EventHandler interface {
HandleCancelledEvent(ctx context.Context, event *subscription.CancelledEvent) error
HandleDeletedEvent(ctx context.Context, event *subscription.DeletedEvent) error
HandleSubscriptionSyncEvent(ctx context.Context, event *subscription.SubscriptionSyncEvent) error
HandleInvoiceCreation(ctx context.Context, event *billing.StandardInvoiceCreatedEvent) error
}
type SyncStateService interface {
GetSyncStates(ctx context.Context, input GetSyncStatesInput) ([]SyncState, error)
}
type SynchronizeSubscriptionOptions struct {
DryRun bool
}
type SynchronizeSubscriptionOption func(*SynchronizeSubscriptionOptions)
func EnableDryRun() SynchronizeSubscriptionOption {
return func(o *SynchronizeSubscriptionOptions) {
o.DryRun = true
}
}