users.py 873 B

1234567891011121314151617181920212223242526272829303132
  1. from __future__ import annotations
  2. from datetime import datetime
  3. from pydantic import BaseModel, Field
  4. class UserBase(BaseModel):
  5. username: str = Field(max_length=100)
  6. role: str = Field(default="user", max_length=50)
  7. model_config = {"from_attributes": True}
  8. class UserCreate(BaseModel):
  9. username: str = Field(max_length=100)
  10. password: str = Field(min_length=1)
  11. role: str = Field(default="user", max_length=50)
  12. class UserUpdate(BaseModel):
  13. username: str | None = Field(default=None, max_length=100)
  14. password: str | None = Field(default=None, min_length=1)
  15. role: str | None = Field(default=None, max_length=50)
  16. class UserRead(UserBase):
  17. id: int
  18. created_at: datetime | None = Field(default=None, alias="createdAt", serialization_alias="createdAt")
  19. model_config = {"from_attributes": True, "populate_by_name": True}