fix finance balance delta recharges

This commit is contained in:
SmartUp Developer
2026-07-03 20:05:28 +08:00
parent bb7ed5a7e0
commit 1670503720
12 changed files with 745 additions and 24 deletions
+13 -2
View File
@@ -1,9 +1,10 @@
"""Snapshot diff logic."""
"""Snapshot diff logic and balance snapshot writes."""
from datetime import datetime, timezone
from typing import Any, Optional
from sqlalchemy.orm import Session
from app.models.snapshot import UpstreamRateSnapshot
from app.models.snapshot import UpstreamBalanceSnapshot, UpstreamRateSnapshot
def diff_snapshots(
@@ -43,6 +44,16 @@ def diff_snapshots(
return changes
def write_balance_snapshot(db: Session, upstream_id: int, balance: float) -> None:
"""Write a balance snapshot row. Call only on successful balance fetch."""
row = UpstreamBalanceSnapshot(
upstream_id=upstream_id,
balance=balance,
captured_at=datetime.now(timezone.utc),
)
db.add(row)
def prune_snapshots(db: Session, upstream_id: int, keep: int) -> None:
if keep <= 0:
return