from sqlmodel import SQLModel, Field, Relationship from typing import TYPE_CHECKING, Optional, List from datetime import datetime import uuid if TYPE_CHECKING: from models.task import Task class UserBase(SQLModel): email: str = Field(unique=True, nullable=False) class User(UserBase, table=True): id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) hashed_password: str = Field(nullable=False) created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow) # Relationship to Tasks tasks: List["Task"] = Relationship(back_populates="user")