from typing import Optional from pydantic import EmailStr from sqlmodel import SQLModel, Field from app.db.base_class import Base class UserBase(SQLModel): full_name: Optional[str] = Field(index=True) email: Optional[EmailStr] = Field(unique=True, index=True, nullable=False) hashed_password: Optional[str] = Field(nullable=False) is_active: Optional[bool] = Field(default=True) is_superuser: bool = Field(default=False) class User(UserBase, Base, table=True): pass class UserCreate(UserBase): email: EmailStr password: str # Properties to receive via API on update class UserUpdate(UserBase): password: Optional[str] = None