package customer import ( "context" "github.com/openmeterio/openmeter/openmeter/streaming" "github.com/openmeterio/openmeter/pkg/framework/entutils" "github.com/openmeterio/openmeter/pkg/pagination" ) type Adapter interface { CustomerAdapter entutils.TxCreator } type CustomerAdapter interface { ListCustomers(ctx context.Context, params ListCustomersInput) (pagination.Result[Customer], error) ListCustomerUsageAttributions(ctx context.Context, input ListCustomerUsageAttributionsInput) (pagination.Result[streaming.CustomerUsageAttribution], error) CreateCustomer(ctx context.Context, params CreateCustomerInput) (*Customer, error) DeleteCustomer(ctx context.Context, customer DeleteCustomerInput) error GetCustomer(ctx context.Context, customer GetCustomerInput) (*Customer, error) GetCustomerByUsageAttribution(ctx context.Context, input GetCustomerByUsageAttributionInput) (*Customer, error) GetCustomersByUsageAttribution(ctx context.Context, input GetCustomersByUsageAttributionInput) ([]Customer, error) UpdateCustomer(ctx context.Context, params UpdateCustomerInput) (*Customer, error) }