Files
000-platform/backend/app/models/tenant.py
111 ab84f6b87d
All checks were successful
continuous-integration/drone/push Build is passing
feat: 企微应用租户下拉选择 + corp_id 自动填入
- 租户表增加 corp_id 字段(企业微信企业ID)
- 租户管理页面支持配置 corp_id
- 企微应用页面租户从下拉选择
- 选择租户后自动填入 corp_id 并禁用编辑
- 提示用户如租户未配置 corp_id 需先去配置
2026-01-24 10:20:02 +08:00

49 lines
1.9 KiB
Python

"""租户相关模型"""
from datetime import datetime, date
from sqlalchemy import Column, BigInteger, String, Enum, Date, Text, Boolean, JSON, TIMESTAMP
from ..database import Base
class Tenant(Base):
"""租户表"""
__tablename__ = "platform_tenants"
id = Column(BigInteger, primary_key=True, autoincrement=True)
code = Column(String(50), unique=True, nullable=False)
name = Column(String(100), nullable=False)
corp_id = Column(String(100)) # 企业微信企业ID
contact_info = Column(JSON)
status = Column(Enum('active', 'expired', 'trial'), default='active')
expired_at = Column(Date)
created_at = Column(TIMESTAMP, default=datetime.now)
updated_at = Column(TIMESTAMP, default=datetime.now, onupdate=datetime.now)
class Subscription(Base):
"""订阅表"""
__tablename__ = "platform_subscriptions"
id = Column(BigInteger, primary_key=True, autoincrement=True)
tenant_id = Column(BigInteger, nullable=False)
app_code = Column(String(50), nullable=False)
start_date = Column(Date)
end_date = Column(Date)
quota = Column(JSON)
status = Column(Enum('active', 'expired'), default='active')
created_at = Column(TIMESTAMP, default=datetime.now)
updated_at = Column(TIMESTAMP, default=datetime.now, onupdate=datetime.now)
class Config(Base):
"""配置表"""
__tablename__ = "platform_configs"
id = Column(BigInteger, primary_key=True, autoincrement=True)
tenant_id = Column(BigInteger, nullable=False)
config_type = Column(String(50), nullable=False)
config_key = Column(String(100), nullable=False)
config_value = Column(Text)
is_encrypted = Column(Boolean, default=False)
created_at = Column(TIMESTAMP, default=datetime.now)
updated_at = Column(TIMESTAMP, default=datetime.now, onupdate=datetime.now)