user.py 929 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from pydantic import BaseModel, Field
  2. from typing import Optional
  3. from uuid import UUID
  4. class UserBase(BaseModel):
  5. name: str
  6. account: str
  7. phone: Optional[str] = None
  8. title: Optional[str] = None
  9. avatar: Optional[str] = None
  10. role_id: UUID
  11. campus_id: Optional[UUID] = None
  12. dept_id: Optional[UUID] = None
  13. status: str = Field(default="active")
  14. class UserCreate(UserBase):
  15. password: str
  16. class UserUpdate(BaseModel):
  17. name: Optional[str] = None
  18. phone: Optional[str] = None
  19. title: Optional[str] = None
  20. avatar: Optional[str] = None
  21. role_id: Optional[UUID] = None
  22. campus_id: Optional[UUID] = None
  23. dept_id: Optional[UUID] = None
  24. status: Optional[str] = None
  25. password: Optional[str] = None
  26. class UserResponse(UserBase):
  27. id: UUID
  28. class Config:
  29. from_attributes = True
  30. class CurrentUserResponse(UserResponse):
  31. permissions: list[str] = []