from sqlalchemy import Column, String, Integer, Float, DateTime, ForeignKey from sqlalchemy.dialects.postgresql import UUID from datetime import datetime from app.database import Base import uuid class CreditPurchase(Base): __tablename__ = "credit_purchases" 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) package_id = Column(UUID(as_uuid=True), ForeignKey("credit_packages.id"), nullable=True) subscription_plan_id = Column(UUID(as_uuid=True), ForeignKey("subscription_plans.id"), nullable=True) credits = Column(Integer, nullable=False) amount = Column(Float, nullable=False) currency = Column(String(3), default="CNY") payment_method = Column(String(20)) status = Column(String(20), default="pending") payment_transaction_id = Column(UUID(as_uuid=True), ForeignKey("payment_transactions.id"), nullable=True) created_at = Column(DateTime, default=datetime.utcnow) paid_at = Column(DateTime, nullable=True)