user.py 839 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. from typing import Optional
  2. from pydantic import BaseModel, EmailStr
  3. # Shared properties
  4. class UserBase(BaseModel):
  5. email: Optional[EmailStr] = None
  6. is_active: Optional[bool] = True
  7. is_superuser: bool = False
  8. full_name: Optional[str] = None
  9. # Properties to receive via API on creation
  10. class UserCreate(UserBase):
  11. email: EmailStr
  12. password: str
  13. # Properties to receive via API on update
  14. class UserUpdate(UserBase):
  15. password: Optional[str] = None
  16. class UserInDBBase(UserBase):
  17. id: Optional[int] = None
  18. available_time: Optional[int] = None
  19. membership_status: Optional[str] = None
  20. class Config:
  21. orm_mode = True
  22. # Additional properties to return via API
  23. class User(UserInDBBase):
  24. pass
  25. # Additional properties stored in DB
  26. class UserInDB(UserInDBBase):
  27. hashed_password: str