Files
video-gen/video-gen-api/app/services/credit/utils.py
T
2026-08-11 09:24:18 +08:00

29 lines
732 B
Python

from __future__ import annotations
from datetime import datetime, timezone
from decimal import Decimal, ROUND_HALF_UP
from typing import Any
CREDIT_QUANT = Decimal("0.01")
def to_credit_decimal(value: Any) -> Decimal:
try:
return Decimal(str(value or 0)).quantize(CREDIT_QUANT, rounding=ROUND_HALF_UP)
except Exception as exc:
raise ValueError(f"无效积分数值: {value!r}") from exc
def to_float(value: Decimal | int | float | None) -> float:
return float(to_credit_decimal(value))
def utc_now() -> datetime:
return datetime.now(timezone.utc)
def ensure_aware(value: datetime) -> datetime:
if value.tzinfo is None:
return value.replace(tzinfo=timezone.utc)
return value