2、前台判断用户是管理人,左下角显示团队管理 3、团队管理可以看到团队的人员、分配人员积分、人员的积分情况的功能 4、团队管理还可以邀请用户,比如生成个链接,未注册需要注册绑定团队,已注册用户访问弹窗是否加入这个团队,然后都需要管理同意才可以加入团队
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
from pydantic import BaseModel, Field
|
|
|
|
from app.enums.team import TeamStatus
|
|
from app.schemas.common import NaiveDatetime, NaiveDatetimeOptional
|
|
|
|
|
|
class TeamBase(BaseModel):
|
|
name: str = Field(..., min_length=1, max_length=128, description="团队名称")
|
|
code: str | None = Field(None, max_length=64, description="团队编码,可选,建议用于内部标识")
|
|
description: str | None = Field(None, max_length=512, description="团队备注")
|
|
status: str = Field(default=TeamStatus.ACTIVE.value, pattern="^(active|disabled)$", description="团队状态:active启用,disabled禁用")
|
|
sort_order: int = Field(default=0, ge=0, le=999999, description="排序值,越小越靠前")
|
|
|
|
|
|
class TeamCreate(TeamBase):
|
|
pass
|
|
|
|
|
|
class TeamUpdate(BaseModel):
|
|
name: str = Field(..., min_length=1, max_length=128, description="团队名称")
|
|
code: str | None = Field(None, max_length=64, description="团队编码,可选,建议用于内部标识")
|
|
description: str | None = Field(None, max_length=512, description="团队备注")
|
|
status: str = Field(default=TeamStatus.ACTIVE.value, pattern="^(active|disabled)$", description="团队状态:active启用,disabled禁用")
|
|
sort_order: int = Field(default=0, ge=0, le=999999, description="排序值,越小越靠前")
|
|
|
|
|
|
class TeamOut(TeamBase):
|
|
id: str
|
|
member_count: int = 0
|
|
created_at: NaiveDatetime
|
|
updated_at: NaiveDatetimeOptional = None
|
|
manager_id: str | None = None
|
|
manager_name: str | None = None
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class TeamOptionOut(BaseModel):
|
|
id: str
|
|
name: str
|
|
code: str | None = None
|
|
status: str = TeamStatus.ACTIVE.value
|
|
|
|
model_config = {"from_attributes": True}
|
|
|
|
|
|
class TeamListOut(BaseModel):
|
|
items: list[TeamOut]
|
|
total: int
|
|
|
|
|
|
class UpdateUserTeamRequest(BaseModel):
|
|
team_id: str | None = Field(None, description="团队ID;传 null 表示取消团队归属")
|