from sqlalchemy import Column, Integer, String, Text, DateTime, Enum, JSON, DECIMAL from datetime import datetime from app.core.database import Base class VasPayment(Base): __tablename__ = "vas_payment" id = Column(Integer, primary_key=True, autoincrement=True) order_id = Column(String(128), nullable=False) provider = Column(Enum('stripe','wechat','alipay'), nullable=False) channel = Column(String(50), nullable=False) payment_intent_id = Column(String(255)) external_trade_no = Column(String(255)) status = Column( Enum('pending','succeeded','failed','expired', 'late_paid'), default='pending' ) base_amount = Column(Integer, nullable=False) base_currency = Column(String(10), nullable=False) amount = Column(Integer, nullable=False) currency = Column(String(10), nullable=False) random_offset = Column(Integer, nullable=False) exchange_rate = Column(DECIMAL(18, 8), nullable=False) qr_id = Column(Integer) payment_url = Column(Text) expire_at = Column(DateTime) provider_payload = Column(JSON) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)