@@ -13,6 +13,7 @@ import (
1313 "github.com/openmeterio/openmeter/openmeter/billing/charges/meta"
1414 "github.com/openmeterio/openmeter/openmeter/billing/charges/usagebased"
1515 usagebasedrating "github.com/openmeterio/openmeter/openmeter/billing/charges/usagebased/service/rating"
16+ "github.com/openmeterio/openmeter/openmeter/billing/models/totals"
1617 "github.com/openmeterio/openmeter/openmeter/customer"
1718 "github.com/openmeterio/openmeter/pkg/clock"
1819 "github.com/openmeterio/openmeter/pkg/framework/transaction"
@@ -141,19 +142,19 @@ func (s *service) expandChargesUsage(ctx context.Context, namespace string, char
141142 }
142143 }()
143144
144- var ratingResult usagebasedrating. GetRatingForUsageResult
145- ratingResult , err = s .rater .GetRatingForUsage (ctx , usagebasedrating.GetRatingForUsageInput {
145+ var dueTotals totals. Totals
146+ dueTotals , err = s .rater .GetTotalsForUsage (ctx , usagebasedrating.GetRatingForUsageInput {
146147 Charge : charge ,
147148 Customer : customerOverridesById [charge .GetCustomerID ()],
148149 FeatureMeter : featureMeter ,
149150 StoredAtOffset : storedAt ,
150151 })
151152 if err != nil {
152- err = fmt .Errorf ("rating charge %s: %w" , charge .ID , err )
153+ err = fmt .Errorf ("get totals for charge %s: %w" , charge .ID , err )
153154 return
154155 }
155156
156- ratingResults .Store (charge .GetChargeID (), ratingResult )
157+ ratingResults .Store (charge .GetChargeID (), dueTotals )
157158 })
158159 }
159160
@@ -174,17 +175,17 @@ func (s *service) expandChargesUsage(ctx context.Context, namespace string, char
174175 }
175176
176177 return slicesx .MapWithErr (charges , func (charge usagebased.Charge ) (usagebased.Charge , error ) {
177- ratingResultAny , ok := ratingResults .Load (charge .GetChargeID ())
178+ dueTotalsAny , ok := ratingResults .Load (charge .GetChargeID ())
178179 if ! ok {
179- return charge , fmt .Errorf ("rating result not found for charge %s" , charge .ID )
180+ return charge , fmt .Errorf ("totals result not found for charge %s" , charge .ID )
180181 }
181182
182- ratingResult , ok := ratingResultAny .(usagebasedrating. GetRatingForUsageResult )
183+ dueTotals , ok := dueTotalsAny .(totals. Totals )
183184 if ! ok {
184- return charge , fmt .Errorf ("rating result not found for charge %s" , charge .ID )
185+ return charge , fmt .Errorf ("invalid totals type for charge %s" , charge .ID )
185186 }
186187
187- charge .Expands .RealtimeUsage = & ratingResult . Totals
188+ charge .Expands .RealtimeUsage = & dueTotals
188189 return charge , nil
189190 })
190191}
0 commit comments