from sqlmodel import SQLModel, Field, Relationship from typing import TYPE_CHECKING, Optional from datetime import datetime import uuid if TYPE_CHECKING: from models.user import User class TaskBase(SQLModel): title: str = Field(min_length=1, max_length=255) description: Optional[str] = Field(default=None, max_length=1000) completed: bool = Field(default=False) class Task(TaskBase, table=True): id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) user_id: uuid.UUID = Field(foreign_key="user.id", nullable=False) created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow) # Relationship to User user: "User" = Relationship(back_populates="tasks")