Documentation
¶
Index ¶
- Constants
- type BaseSuite
- func (s *BaseSuite) AssertLedgerSnapshotEqual(expected, actual LedgerSnapshot)
- func (s *BaseSuite) AssertLedgerSnapshotUnchanged(input LedgerSnapshotInput, expected LedgerSnapshot)
- func (s *BaseSuite) CreateCreditPurchaseIntent(input CreateCreditPurchaseIntentInput) charges.ChargeIntent
- func (s *BaseSuite) CreateCustomCurrency(namespace string, code currencyx.Code) currencies.Currency
- func (s *BaseSuite) CreateLedgerBackedCustomer(ns string, subjectKey string) *customer.Customer
- func (s *BaseSuite) CreateLedgerSnapshot(input LedgerSnapshotInput) LedgerSnapshot
- func (s *BaseSuite) CreateMockChargeIntent(input CreateMockChargeIntentInput) charges.ChargeIntent
- func (s *BaseSuite) CreatePromotionalCreditFunding(ctx context.Context, input CreatePromotionalCreditFundingInput) CreatePromotionalCreditFundingResult
- func (s *BaseSuite) MustBreakageBalanceAsOf(namespace string, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerAccruedBalance(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerAccruedBalanceForTaxCode(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerAccruedBalanceForTaxConfig(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalance(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalanceAsOf(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalanceByRouteAsOf(customerID customer.CustomerID, route ledger.RouteFilter, asOf *time.Time) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalanceForFeatures(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalanceWithPriority(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalanceWithPriorityAsOf(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerFBOBalanceWithPriorityForFeatures(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerReceivableBalance(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerReceivableBalanceForFeatures(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustCustomerReceivableBalanceForTaxCode(customerID customer.CustomerID, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustEarningsBalance(namespace string, code currencyx.Code) alpacadecimal.Decimal
- func (s *BaseSuite) MustEarningsBalanceForCostBasis(namespace string, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustEarningsBalanceForTaxCode(namespace string, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) MustGetChargeByID(chargeID meta.ChargeID) charges.Charge
- func (s *BaseSuite) MustRecognizeRevenue(customerID customer.CustomerID, code currencyx.Code, ...)
- func (s *BaseSuite) MustRefundCharge(ctx context.Context, customerID customer.CustomerID, chargeID meta.ChargeID)
- func (s *BaseSuite) MustWashBalance(namespace string, code currencyx.Code, ...) alpacadecimal.Decimal
- func (s *BaseSuite) RequireChargeStatus(chargeID meta.ChargeID, status any) charges.Charge
- func (s *BaseSuite) RequireFlatFeeChargeStatus(chargeID meta.ChargeID, status flatfee.Status) flatfee.Charge
- func (s *BaseSuite) RequireUsageBasedChargeStatus(chargeID meta.ChargeID, status usagebased.Status) usagebased.Charge
- func (s *BaseSuite) SetupSuite()
- func (s *BaseSuite) TearDownTest()
- type CreateCreditPurchaseIntentInput
- type CreateMockChargeIntentInput
- type CreatePromotionalCreditFundingInput
- type CreatePromotionalCreditFundingResult
- type LedgerSnapshot
- type LedgerSnapshotInput
Constants ¶
const USD = currencyx.Code(currency.USD)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseSuite ¶
type BaseSuite struct {
billingtest.BaseSuite
Charges charges.Service
FlatFeeSvc flatfee.Service
CreditPurchaseSvc creditpurchase.Service
UsageBasedSvc usagebased.Service
CustomerBalanceSvc customerbalance.Service
Ledger ledger.Ledger
BalanceQuerier ledger.BalanceQuerier
LedgerAccountService ledgeraccount.Service
LedgerResolver *ledgerresolvers.AccountResolver
AdvanceService advance.Service
BreakageService ledgerbreakage.Service
CreditVoidService creditvoid.Service
FlatFeeHandler flatfee.Handler
LineageService legacylineage.Service
RevenueRecognizer recognizer.Service
CurrencyService currencies.Service
CurrencyResolver currencies.CurrencyResolver
}
func (*BaseSuite) AssertLedgerSnapshotEqual ¶
func (s *BaseSuite) AssertLedgerSnapshotEqual(expected, actual LedgerSnapshot)
func (*BaseSuite) AssertLedgerSnapshotUnchanged ¶
func (s *BaseSuite) AssertLedgerSnapshotUnchanged(input LedgerSnapshotInput, expected LedgerSnapshot)
func (*BaseSuite) CreateCreditPurchaseIntent ¶
func (s *BaseSuite) CreateCreditPurchaseIntent(input CreateCreditPurchaseIntentInput) charges.ChargeIntent
func (*BaseSuite) CreateCustomCurrency ¶
func (*BaseSuite) CreateLedgerBackedCustomer ¶
func (*BaseSuite) CreateLedgerSnapshot ¶
func (s *BaseSuite) CreateLedgerSnapshot(input LedgerSnapshotInput) LedgerSnapshot
func (*BaseSuite) CreateMockChargeIntent ¶
func (s *BaseSuite) CreateMockChargeIntent(input CreateMockChargeIntentInput) charges.ChargeIntent
func (*BaseSuite) CreatePromotionalCreditFunding ¶
func (s *BaseSuite) CreatePromotionalCreditFunding(ctx context.Context, input CreatePromotionalCreditFundingInput) CreatePromotionalCreditFundingResult
func (*BaseSuite) MustBreakageBalanceAsOf ¶
func (*BaseSuite) MustCustomerAccruedBalance ¶
func (s *BaseSuite) MustCustomerAccruedBalance(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal]) alpacadecimal.Decimal
MustCustomerAccruedBalance returns customer accrued balance in a currency. Pass mo.None() for all cost bases, mo.Some(nil) for the explicit nil-cost-basis route, or mo.Some(&costBasis) for one concrete cost-basis route.
func (*BaseSuite) MustCustomerAccruedBalanceForTaxCode ¶
func (s *BaseSuite) MustCustomerAccruedBalanceForTaxCode(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], taxCode mo.Option[*string]) alpacadecimal.Decimal
MustCustomerAccruedBalanceForTaxCode returns accrued balance filtered by cost basis and tax code.
func (*BaseSuite) MustCustomerAccruedBalanceForTaxConfig ¶
func (s *BaseSuite) MustCustomerAccruedBalanceForTaxConfig(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], taxCode mo.Option[*string], taxBehavior mo.Option[*ledger.TaxBehavior]) alpacadecimal.Decimal
MustCustomerAccruedBalanceForTaxConfig returns accrued balance filtered by cost basis, tax code, and tax behavior.
func (*BaseSuite) MustCustomerFBOBalance ¶
func (s *BaseSuite) MustCustomerFBOBalance(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal]) alpacadecimal.Decimal
MustCustomerFBOBalance returns customer FBO balance in a currency. Pass mo.None() for all cost bases, mo.Some(nil) for the explicit nil-cost-basis route, or mo.Some(&costBasis) for one concrete cost-basis route.
func (*BaseSuite) MustCustomerFBOBalanceAsOf ¶
func (s *BaseSuite) MustCustomerFBOBalanceAsOf(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], asOf time.Time) alpacadecimal.Decimal
func (*BaseSuite) MustCustomerFBOBalanceByRouteAsOf ¶
func (s *BaseSuite) MustCustomerFBOBalanceByRouteAsOf(customerID customer.CustomerID, route ledger.RouteFilter, asOf *time.Time) alpacadecimal.Decimal
MustCustomerFBOBalanceByRouteAsOf applies the supplied route filter to the customer FBO balance at an optional historical point.
func (*BaseSuite) MustCustomerFBOBalanceForFeatures ¶
func (s *BaseSuite) MustCustomerFBOBalanceForFeatures(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], features mo.Option[[]string]) alpacadecimal.Decimal
func (*BaseSuite) MustCustomerFBOBalanceWithPriority ¶
func (s *BaseSuite) MustCustomerFBOBalanceWithPriority(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], priority int) alpacadecimal.Decimal
MustCustomerFBOBalanceWithPriority returns customer FBO balance in a currency filtered by a specific credit priority. Pass mo.None() for all cost bases, mo.Some(nil) for the explicit nil-cost-basis route, or mo.Some(&costBasis) for one concrete cost-basis route.
func (*BaseSuite) MustCustomerFBOBalanceWithPriorityAsOf ¶
func (s *BaseSuite) MustCustomerFBOBalanceWithPriorityAsOf(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], priority int, asOf *time.Time) alpacadecimal.Decimal
func (*BaseSuite) MustCustomerFBOBalanceWithPriorityForFeatures ¶
func (s *BaseSuite) MustCustomerFBOBalanceWithPriorityForFeatures(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], priority int, features mo.Option[[]string]) alpacadecimal.Decimal
func (*BaseSuite) MustCustomerReceivableBalance ¶
func (s *BaseSuite) MustCustomerReceivableBalance(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], status ledger.TransactionAuthorizationStatus) alpacadecimal.Decimal
MustCustomerReceivableBalance returns customer receivable balance in a currency for one authorization state. Pass mo.None() for all cost bases, mo.Some(nil) for the explicit nil-cost-basis route, or mo.Some(&costBasis) for one concrete route.
func (*BaseSuite) MustCustomerReceivableBalanceForFeatures ¶
func (s *BaseSuite) MustCustomerReceivableBalanceForFeatures(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], status ledger.TransactionAuthorizationStatus, features mo.Option[[]string]) alpacadecimal.Decimal
MustCustomerReceivableBalanceForFeatures returns customer receivable balance for one authorization state and feature route. It is used by backfill tests where aggregate receivable can net to zero while individual feature buckets do not.
func (*BaseSuite) MustCustomerReceivableBalanceForTaxCode ¶
func (s *BaseSuite) MustCustomerReceivableBalanceForTaxCode(customerID customer.CustomerID, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], status ledger.TransactionAuthorizationStatus, taxCode mo.Option[*string]) alpacadecimal.Decimal
MustCustomerReceivableBalanceForTaxCode returns customer receivable balance filtered by cost basis, authorization status, and tax code.
func (*BaseSuite) MustEarningsBalance ¶
func (*BaseSuite) MustEarningsBalanceForCostBasis ¶
func (s *BaseSuite) MustEarningsBalanceForCostBasis(namespace string, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal]) alpacadecimal.Decimal
MustEarningsBalanceForCostBasis returns earnings balance in a currency. Pass mo.None() for all cost bases, mo.Some(nil) for the explicit nil-cost-basis route, or mo.Some(&costBasis) for one concrete cost-basis route.
func (*BaseSuite) MustEarningsBalanceForTaxCode ¶
func (s *BaseSuite) MustEarningsBalanceForTaxCode(namespace string, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal], taxCode mo.Option[*string]) alpacadecimal.Decimal
MustEarningsBalanceForTaxCode returns earnings balance filtered by both cost basis and tax code.
func (*BaseSuite) MustGetChargeByID ¶
func (*BaseSuite) MustRecognizeRevenue ¶
func (s *BaseSuite) MustRecognizeRevenue(customerID customer.CustomerID, code currencyx.Code, amount alpacadecimal.Decimal)
func (*BaseSuite) MustRefundCharge ¶
func (s *BaseSuite) MustRefundCharge(ctx context.Context, customerID customer.CustomerID, chargeID meta.ChargeID)
MustRefundCharge deletes a charge through the real refund-as-credits patch flow.
func (*BaseSuite) MustWashBalance ¶
func (s *BaseSuite) MustWashBalance(namespace string, code currencyx.Code, costBasis mo.Option[*alpacadecimal.Decimal]) alpacadecimal.Decimal
MustWashBalance returns aggregate wash balance in a currency. Pass mo.None() for all cost bases, mo.Some(nil) for the explicit nil-cost-basis route, or mo.Some(&costBasis) for one concrete cost-basis route.
func (*BaseSuite) RequireChargeStatus ¶
func (*BaseSuite) RequireFlatFeeChargeStatus ¶
func (*BaseSuite) RequireUsageBasedChargeStatus ¶
func (s *BaseSuite) RequireUsageBasedChargeStatus(chargeID meta.ChargeID, status usagebased.Status) usagebased.Charge
func (*BaseSuite) SetupSuite ¶
func (s *BaseSuite) SetupSuite()
func (*BaseSuite) TearDownTest ¶
func (s *BaseSuite) TearDownTest()
type CreateCreditPurchaseIntentInput ¶
type CreateCreditPurchaseIntentInput struct {
Customer customer.CustomerID
Currency currencyx.Code
Amount alpacadecimal.Decimal
EffectiveAt *time.Time
ExpiresAt *time.Time
Priority *int
ServicePeriod timeutil.ClosedPeriod
Settlement creditpurchase.Settlement
CostBasis creditpurchase.CostBasis
Filters ledger.CreditFilters
TaxConfig productcatalog.TaxCodeConfig
}
func (CreateCreditPurchaseIntentInput) Validate ¶
func (i CreateCreditPurchaseIntentInput) Validate() error
type CreateMockChargeIntentInput ¶
type CreateMockChargeIntentInput struct {
Customer customer.CustomerID
Currency currencyx.Code
ServicePeriod timeutil.ClosedPeriod
Price *productcatalog.Price
FeatureKey string
Name string
SettlementMode productcatalog.SettlementMode
ManagedBy billing.InvoiceLineManagedBy
UniqueReferenceID string
ProRating productcatalog.ProRatingConfig
TaxConfig productcatalog.TaxCodeConfig
}
func (*CreateMockChargeIntentInput) Validate ¶
func (i *CreateMockChargeIntentInput) Validate() error
type CreatePromotionalCreditFundingInput ¶
type CreatePromotionalCreditFundingInput struct {
Namespace string
Customer customer.CustomerID
Amount alpacadecimal.Decimal
At time.Time
ExpiresAt *time.Time
CostBasis alpacadecimal.Decimal
Priority *int
Filters ledger.CreditFilters
TaxConfig productcatalog.TaxCodeConfig
}
type CreatePromotionalCreditFundingResult ¶
type CreatePromotionalCreditFundingResult struct {
Charge creditpurchase.Charge
OpenReceivable alpacadecimal.Decimal
}
type LedgerSnapshot ¶
type LedgerSnapshot struct {
FBO alpacadecimal.Decimal
OpenReceivable alpacadecimal.Decimal
AuthorizedReceivable alpacadecimal.Decimal
Accrued alpacadecimal.Decimal
Wash alpacadecimal.Decimal
Earnings alpacadecimal.Decimal
}
type LedgerSnapshotInput ¶
type LedgerSnapshotInput struct {
Namespace string
Customer customer.CustomerID
Currency currencyx.Code
CostBasis mo.Option[*alpacadecimal.Decimal]
}