from pydantic import BaseModel, Field from typing import Optional from uuid import UUID class UserBase(BaseModel): name: str account: str phone: Optional[str] = None title: Optional[str] = None avatar: Optional[str] = None role_id: UUID campus_id: Optional[UUID] = None dept_id: Optional[UUID] = None status: str = Field(default="active") class UserCreate(UserBase): password: str class UserUpdate(BaseModel): name: Optional[str] = None phone: Optional[str] = None title: Optional[str] = None avatar: Optional[str] = None role_id: Optional[UUID] = None campus_id: Optional[UUID] = None dept_id: Optional[UUID] = None status: Optional[str] = None password: Optional[str] = None class UserResponse(UserBase): id: UUID class Config: from_attributes = True class CurrentUserResponse(UserResponse): permissions: list[str] = []