From 3e4effb76f38100f88f713741f7133b0d24ea668 Mon Sep 17 00:00:00 2001 From: padreug Date: Sat, 5 Jul 2025 16:50:31 +0200 Subject: [PATCH] Refactor logging and transaction time normalization: Updated the get_client_balance_summary function to use loguru for improved logging clarity. Enhanced transaction processing to normalize transaction_time to UTC, ensuring consistency and accuracy in time handling across transactions. --- crud.py | 2 +- transaction_processor.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/crud.py b/crud.py index 805e415..afb8376 100644 --- a/crud.py +++ b/crud.py @@ -264,7 +264,7 @@ async def get_client_balance_summary(client_id: str, as_of_time: Optional[dateti # Log temporal filtering if as_of_time was used if as_of_time is not None: - from lnbits.core.services import logger + from loguru import logger # Verify timezone consistency for temporal filtering tz_info = "UTC" if as_of_time.tzinfo == timezone.utc else f"TZ: {as_of_time.tzinfo}" logger.info(f"Client {client_id[:8]}... balance as of {as_of_time} ({tz_info}): deposits.confirmed_at <= cutoff, payments.transaction_time <= cutoff → {total_deposits - total_payments} centavos remaining") diff --git a/transaction_processor.py b/transaction_processor.py index 3f75adf..1106d47 100644 --- a/transaction_processor.py +++ b/transaction_processor.py @@ -902,6 +902,14 @@ class LamassuTransactionProcessor: fiat_amount = transaction.get("fiat_amount", 0) commission_percentage = transaction.get("commission_percentage") or 0.0 discount = transaction.get("discount") or 0.0 + transaction_time = transaction.get("transaction_time") + + # Normalize transaction_time to UTC if present + if transaction_time is not None: + if transaction_time.tzinfo is None: + transaction_time = transaction_time.replace(tzinfo=timezone.utc) + elif transaction_time.tzinfo != timezone.utc: + transaction_time = transaction_time.astimezone(timezone.utc) # Calculate commission metrics if commission_percentage > 0: