from pydantic import BaseModel, Field from app.schemas.common import NaiveDatetime class SetManagerRequest(BaseModel): user_id: str | None = Field(None, description="设为管理人的前台用户ID;传 null 表示取消管理人") class TeamMemberOut(BaseModel): id: str username: str phone: str | None = None credits: float is_active: bool = True joined_at: NaiveDatetime model_config = {"from_attributes": True} class ManagerTransferRequest(BaseModel): target_user_id: str = Field(..., description="接收积分的成员用户ID") amount: float = Field(gt=0, description="转账积分数量(正数)") direction: str = Field(default="increase", pattern="^(increase|decrease)$", description="increase=管理人转给成员;decrease=从成员扣减回管理人") description: str | None = Field(None, max_length=256, description="转账说明") class ManagedTeamOut(BaseModel): id: str name: str code: str | None = None description: str | None = None status: str member_count: int = 0 manager_id: str | None = None manager_name: str | None = None model_config = {"from_attributes": True}