fix: replace datetime.utcnow() with utcnow()/utcnow_iso() across all source files
Migrates 15 source files from the deprecated datetime.utcnow() API. Uses utcnow() for in-memory math and utcnow_iso() (strftime format) for SQLite TEXT column writes to preserve lexicographic sort order. Also fixes datetime.utcfromtimestamp() in seo/_bing.py. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,9 +5,7 @@ All balance mutations go through this module to keep credit_ledger (source of tr
|
||||
and suppliers.credit_balance (denormalized cache) in sync within a single transaction.
|
||||
"""
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from .core import execute, fetch_all, fetch_one, transaction
|
||||
from .core import execute, fetch_all, fetch_one, transaction, utcnow_iso
|
||||
|
||||
# Credit cost per heat tier
|
||||
HEAT_CREDIT_COSTS = {"hot": 35, "warm": 20, "cool": 8}
|
||||
@@ -44,7 +42,7 @@ async def add_credits(
|
||||
note: str = None,
|
||||
) -> int:
|
||||
"""Add credits to a supplier. Returns new balance."""
|
||||
now = datetime.utcnow().isoformat()
|
||||
now = utcnow_iso()
|
||||
async with transaction() as db:
|
||||
row = await db.execute_fetchall(
|
||||
"SELECT credit_balance FROM suppliers WHERE id = ?", (supplier_id,)
|
||||
@@ -73,7 +71,7 @@ async def spend_credits(
|
||||
note: str = None,
|
||||
) -> int:
|
||||
"""Spend credits from a supplier. Returns new balance. Raises InsufficientCredits."""
|
||||
now = datetime.utcnow().isoformat()
|
||||
now = utcnow_iso()
|
||||
async with transaction() as db:
|
||||
row = await db.execute_fetchall(
|
||||
"SELECT credit_balance FROM suppliers WHERE id = ?", (supplier_id,)
|
||||
@@ -116,7 +114,7 @@ async def unlock_lead(supplier_id: int, lead_id: int) -> dict:
|
||||
raise ValueError("Lead not found")
|
||||
|
||||
cost = lead["credit_cost"] or compute_credit_cost(lead)
|
||||
now = datetime.utcnow().isoformat()
|
||||
now = utcnow_iso()
|
||||
|
||||
async with transaction() as db:
|
||||
# Check balance
|
||||
@@ -180,7 +178,7 @@ async def monthly_credit_refill(supplier_id: int) -> int:
|
||||
if not row or not row["monthly_credits"]:
|
||||
return 0
|
||||
|
||||
now = datetime.utcnow().isoformat()
|
||||
now = utcnow_iso()
|
||||
new_balance = await add_credits(
|
||||
supplier_id,
|
||||
row["monthly_credits"],
|
||||
|
||||
Reference in New Issue
Block a user