from sqlalchemy import Column, Integer, String, Text, DateTime, Boolean, Float from sqlalchemy.sql import text from database import Base class MemberLevel(Base): __tablename__ = "member_levels" id = Column(Integer, primary_key=True, index=True, comment='主键ID') level = Column(Integer, nullable=False, server_default="0", unique=True, index=True, comment='会员等级') name = Column(String(50), nullable=False, server_default="", comment='等级名称') description = Column(Text, nullable=False, default="", comment='等级描述') annual_fee = Column(Float, nullable=False, server_default="0", comment='会员每年权益服务费') discount_price = Column(Float, nullable=False, server_default="0", comment='当前优惠价') deployment_nodes = Column(Integer, nullable=False, server_default="1", comment='独立站部署全球节点数') email_marketing_limit = Column(Integer, nullable=False, server_default="10000", comment='每个月邮件营销推送数量') product_sku_limit = Column(Integer, nullable=False, server_default="100", comment='产品SKU数') sku_image_limit = Column(Integer, nullable=False, server_default="10", comment='每个SKU可加图片数量') image_size_limit = Column(Integer, nullable=False, server_default="5", comment='图片大小限制(MB)') sku_video_limit = Column(Integer, nullable=False, server_default="1", comment='每个SKU可加视频数量') image_storage_limit = Column(Integer, nullable=False, server_default="5", comment='图片空间大小(G)') template_access = Column(Boolean, nullable=False, server_default="0", comment='模板选择权限') geo_seo_access = Column(Boolean, nullable=False, server_default="0", comment='GEO,SEO关键词营销') social_automation_access = Column(Boolean, nullable=False, server_default="0", comment='社交平台自动化营销') custom_development_access = Column(Boolean, nullable=False, server_default="0", comment='定制化需求开发') created_at = Column(DateTime(timezone=True), nullable=False, server_default=text('CURRENT_TIMESTAMP'), comment='创建时间') updated_at = Column(DateTime(timezone=True), nullable=False, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), comment='更新时间')