ymt-python / schemas /member_level.py
hsailorj's picture
Add application file
551658a
Raw
History Blame Contribute Delete
2.85 kB
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