@@ -242,6 +242,7 @@ async def __aexit__(
242242 charging_manager_ctx .set (None )
243243 self .active = False
244244
245+ @_ensure_context
245246 @_ensure_context
246247 async def charge (self , event_name : str , count : int = 1 ) -> ChargeResult :
247248 def calculate_chargeable () -> dict [str , int | None ]:
@@ -336,13 +337,15 @@ def calculate_chargeable() -> dict[str, int | None]:
336337 chargeable_within_limit = calculate_chargeable (),
337338 )
338339
340+ @_ensure_context
339341 @_ensure_context
340342 def calculate_total_charged_amount (self ) -> Decimal :
341343 return sum (
342344 (item .total_charged_amount for item in self ._charging_state .values ()),
343345 start = Decimal (),
344346 )
345347
348+ @_ensure_context
346349 @_ensure_context
347350 def calculate_max_event_charge_count_within_limit (self , event_name : str ) -> int | None :
348351 price = self ._get_event_price (event_name )
@@ -353,6 +356,7 @@ def calculate_max_event_charge_count_within_limit(self, event_name: str) -> int
353356 result = (self ._max_total_charge_usd - self .calculate_total_charged_amount ()) / price
354357 return max (0 , math .floor (result )) if result .is_finite () else None
355358
359+ @_ensure_context
356360 @_ensure_context
357361 def get_pricing_info (self ) -> ActorPricingInfo :
358362 return ActorPricingInfo (
@@ -366,11 +370,13 @@ def get_pricing_info(self) -> ActorPricingInfo:
366370 },
367371 )
368372
373+ @_ensure_context
369374 @_ensure_context
370375 def get_charged_event_count (self , event_name : str ) -> int :
371376 item = self ._charging_state .get (event_name )
372377 return item .charge_count if item is not None else 0
373378
379+ @_ensure_context
374380 @_ensure_context
375381 def get_max_total_charge_usd (self ) -> Decimal :
376382 return self ._max_total_charge_usd
0 commit comments