compensation.py 943 B

12345678910111213141516171819
  1. """待补偿扣减记录模型"""
  2. from sqlalchemy import Column, Integer, String, Numeric, Text, DateTime, func
  3. from app.models import Base
  4. class PendingDeduction(Base):
  5. """待补偿扣减记录:扣减失败时写入,后台任务重试"""
  6. __tablename__ = "pending_deductions"
  7. __table_args__ = {"schema": "domain_monitor"}
  8. id = Column(Integer, primary_key=True, autoincrement=True)
  9. target_type = Column(String(20), nullable=False) # 'tenant' / 'sa'
  10. target_id = Column(Integer, nullable=False) # tenant_id 或 panel_sa_id
  11. amount = Column(Numeric(20, 4), nullable=False)
  12. biz_order_no = Column(String(100), nullable=False)
  13. retry_count = Column(Integer, default=0, server_default="0")
  14. last_error = Column(Text)
  15. created_at = Column(DateTime(timezone=True), server_default=func.now())
  16. updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())