Files
sdb2-backend/app/models/credit_transaction.py
JSC 7ba52ad6fc
All checks were successful
Backend CI / test (push) Successful in 4m5s
fix: Lint fixes of core, models and schemas
2025-07-31 22:06:31 +02:00

31 lines
993 B
Python

"""Credit transaction model for tracking credit usage."""
from typing import TYPE_CHECKING
from sqlmodel import Field, Relationship
from app.models.base import BaseModel
if TYPE_CHECKING:
from app.models.user import User
class CreditTransaction(BaseModel, table=True):
"""Database model for credit transactions."""
__tablename__ = "credit_transaction" # pyright: ignore[reportAssignmentType]
user_id: int = Field(foreign_key="user.id", nullable=False)
action_type: str = Field(nullable=False)
# Negative for deductions, positive for additions
amount: int = Field(nullable=False)
balance_before: int = Field(nullable=False)
balance_after: int = Field(nullable=False)
description: str = Field(nullable=False)
success: bool = Field(nullable=False, default=True)
# JSON string for additional data
metadata_json: str | None = Field(default=None)
# relationships
user: "User" = Relationship(back_populates="credit_transactions")