@@ -3,13 +3,17 @@ package customerscredits
33import (
44 "context"
55
6+ "github.com/alpacahq/alpacadecimal"
7+
68 "github.com/openmeterio/openmeter/openmeter/billing/creditgrant"
79 "github.com/openmeterio/openmeter/openmeter/customer"
10+ "github.com/openmeterio/openmeter/openmeter/ledger"
811 "github.com/openmeterio/openmeter/openmeter/ledger/customerbalance"
912 "github.com/openmeterio/openmeter/pkg/framework/transport/httptransport"
1013)
1114
1215type customerBalanceFacade interface {
16+ GetBalance (ctx context.Context , input customerbalance.GetBalanceInput ) (alpacadecimal.Decimal , error )
1317 GetBalances (ctx context.Context , input customerbalance.GetBalancesInput ) ([]customerbalance.BalanceByCurrency , error )
1418}
1519
@@ -18,13 +22,16 @@ type Handler interface {
1822 ListCreditGrants () ListCreditGrantsHandler
1923 CreateCreditGrant () CreateCreditGrantHandler
2024 GetCreditGrant () GetCreditGrantHandler
25+ ListCreditTransactions () ListCreditTransactionsHandler
2126}
2227
2328type handler struct {
2429 resolveNamespace func (ctx context.Context ) (string , error )
2530 customerService customer.Service
2631 balanceFacade customerBalanceFacade
2732 creditGrantService creditgrant.Service
33+ ledger ledger.Ledger
34+ accountResolver ledger.AccountResolver
2835 options []httptransport.HandlerOption
2936}
3037
@@ -33,13 +40,17 @@ func New(
3340 customerService customer.Service ,
3441 balanceFacade customerBalanceFacade ,
3542 creditGrantService creditgrant.Service ,
43+ ledger ledger.Ledger ,
44+ accountResolver ledger.AccountResolver ,
3645 options ... httptransport.HandlerOption ,
3746) Handler {
3847 return & handler {
3948 resolveNamespace : resolveNamespace ,
4049 customerService : customerService ,
4150 balanceFacade : balanceFacade ,
4251 creditGrantService : creditGrantService ,
52+ ledger : ledger ,
53+ accountResolver : accountResolver ,
4354 options : options ,
4455 }
4556}
0 commit comments