""" Database models for Evolution Todo API. Task: 1.2 Spec: specs/database/schema.md """ from sqlmodel import SQLModel, Field from datetime import datetime from typing import Optional class User(SQLModel, table=True): """User model (managed by Better Auth).""" __tablename__ = "users" id: str = Field(primary_key=True) email: str = Field(unique=True, index=True, max_length=255) name: str = Field(max_length=255) password_hash: str = Field(max_length=255) created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow) class Task(SQLModel, table=True): """Task model for todo items.""" __tablename__ = "tasks" id: Optional[int] = Field(default=None, primary_key=True) user_id: str = Field(foreign_key="users.id", index=True) title: str = Field(min_length=1, max_length=200) description: Optional[str] = Field(default=None) completed: bool = Field(default=False) created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow)