Initial commit: 000-platform project skeleton
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
47
backend/app/models/tenant.py
Normal file
47
backend/app/models/tenant.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""租户相关模型"""
|
||||
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)
|
||||
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)
|
||||
Reference in New Issue
Block a user