Spaces:
Sleeping
Sleeping
File size: 2,850 Bytes
551658a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | from pydantic import BaseModel
from datetime import datetime
from typing import Optional, List
class MemberLevelBase(BaseModel):
level: int
name: str
description: Optional[str] = None
annual_fee: float = 0.0
discount_price: float = 0.0
# 独立站部署节点数
deployment_nodes: int = 1
# 邮件营销推送数量
email_marketing_limit: int = 10000
# 产品SKU数
product_sku_limit: int = 100
# 每个SKU可加图片数量
sku_image_limit: int = 10
# 图片大小限制
image_size_limit: int = 5
# 每个SKU可加视频数量
sku_video_limit: int = 1
# 图片空间大小
image_storage_limit: int = 5
# 模板选择权限
template_access: bool = False
# GEO,SEO 关键词营销
geo_seo_access: bool = False
# 社交平台自动化营销
social_automation_access: bool = False
# 定制化需求开发
custom_development_access: bool = False
class MemberLevelCreate(MemberLevelBase):
pass
class MemberLevelUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
annual_fee: Optional[float] = None
discount_price: Optional[float] = None
# 独立站部署节点数
deployment_nodes: Optional[int] = None
# 邮件营销推送数量
email_marketing_limit: Optional[int] = None
# 产品SKU数
product_sku_limit: Optional[int] = None
# 每个SKU可加图片数量
sku_image_limit: Optional[int] = None
# 图片大小限制
image_size_limit: Optional[int] = None
# 每个SKU可加视频数量
sku_video_limit: Optional[int] = None
# 图片空间大小
image_storage_limit: Optional[int] = None
# 模板选择权限
template_access: Optional[bool] = None
# GEO,SEO 关键词营销
geo_seo_access: Optional[bool] = None
# 社交平台自动化营销
social_automation_access: Optional[bool] = None
# 定制化需求开发
custom_development_access: Optional[bool] = None
class MemberLevelResponse(MemberLevelBase):
id: int
created_at: datetime
updated_at: Optional[datetime] = None
class Config:
from_attributes = True
# 公开会员等级数据(简化版,用于首页展示)
class PublicMemberLevel(BaseModel):
level: int
name: str
description: Optional[str] = None
annual_fee: float
discount_price: float
deployment_nodes: int
email_marketing_limit: int
product_sku_limit: int
sku_image_limit: int
image_size_limit: int
sku_video_limit: int
image_storage_limit: int
template_access: bool
geo_seo_access: bool
social_automation_access: bool
custom_development_access: bool
# 公开会员等级响应
class PublicMemberLevelResponse(BaseModel):
member_levels: List[PublicMemberLevel]
max_benefit_count: int |