from sqlalchemy import Column, String, Float, DateTime, ForeignKey, Text from sqlalchemy.dialects.postgresql import UUID, JSONB from datetime import datetime from app.database import Base import uuid class CreditConsumption(Base): __tablename__ = "credit_consumptions" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False, index=True) result_type = Column(String(50), nullable=False) reference_id = Column(UUID(as_uuid=True), nullable=True) credits_change = Column(Float, nullable=False) balance_after = Column(Float, nullable=False) source = Column(String(30), nullable=False) description = Column(String(500)) metadata_ = Column("metadata", JSONB) created_at = Column(DateTime, default=datetime.utcnow)