from __future__ import annotations from datetime import datetime from pydantic import BaseModel class CreditRecordOut(BaseModel): id: str type: str amount: float balance_delta: float = 0 expired_amount: float = 0 balance_after: float description: str billing_scene: str | None = None scene_name_snapshot: str | None = None input_tokens: int | None = None output_tokens: int | None = None total_tokens: int | None = None llm_call_count: int | None = None llm_success_call_count: int | None = None llm_failed_call_count: int | None = None created_at: datetime model_config = {"from_attributes": True} class CreditBalanceOut(BaseModel): credits: float available_credits: float next_expiring_credits: float = 0 next_expires_at: datetime | None = None next_last_usable_at: datetime | None = None records: list[CreditRecordOut] total: int = 0