| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- """
- 卡密模型
- """
- from sqlalchemy import Column, Integer, String, DateTime, ForeignKey, SmallInteger, Numeric
- from sqlalchemy.orm import relationship
- from app.database import Base
- class Card(Base):
- """卡密表"""
- __tablename__ = "cards"
- id = Column(Integer, primary_key=True, index=True, comment="主键ID")
- card_code = Column(String(32), unique=True, nullable=False, index=True, comment="卡密代码")
- software_code = Column(String(50), nullable=False, index=True, comment="软件特征码")
- days = Column(Integer, nullable=False, comment="天数")
- discount = Column(Numeric(5, 2), default=1.00, comment="折扣")
- user_id = Column(Integer, ForeignKey("users.id"), index=True, comment="激活用户ID")
- activated_at = Column(DateTime, comment="激活时间")
- expire_time = Column(DateTime, index=True, comment="到期时间")
- status = Column(SmallInteger, default=0, index=True, comment="状态:0-未激活,1-已激活,2-已过期")
- is_gift = Column(SmallInteger, default=0, index=True, comment="是否赠送卡密:0-收费,1-赠送")
- is_extracted = Column(SmallInteger, default=0, index=True, comment="是否已提取:0-未提取,1-已提取")
- special_close = Column(SmallInteger, default=0, index=True, comment="特殊关闭:0-关闭,1-打开")
- issue_price = Column(Numeric(10, 2), nullable=True, comment="发放价格")
- issued_to = Column(String(200), nullable=True, comment="发放给谁(文本)")
- issue_remark = Column(String(500), nullable=True, comment="发放备注")
- issued_at = Column(DateTime, index=True, nullable=True, comment="发放时间")
- issued_admin_id = Column(Integer, index=True, nullable=True, comment="发放管理员ID")
- remark = Column(String(500), nullable=True, comment="备注")
- is_deleted = Column(SmallInteger, default=0, index=True, comment="是否删除:0-否,1-是")
- is_revoked = Column(SmallInteger, default=0, index=True, comment="是否已注销:0-否,1-是")
- revoked_at = Column(DateTime, index=True, nullable=True, comment="注销时间")
- revoked_reason = Column(String(500), nullable=True, comment="注销原因")
- revoked_admin_id = Column(Integer, index=True, nullable=True, comment="注销管理员ID")
- created_at = Column(DateTime, comment="创建时间")
- updated_at = Column(DateTime, comment="更新时间")
-
- # 关系
- user = relationship("User", foreign_keys=[user_id]) # 激活该卡密的用户(多对一)
- recharge_records = relationship("RechargeRecord", back_populates="card")
|