| 1234567891011121314151617181920212223242526272829303132333435363738 |
- 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)
|