import enum from sqlalchemy import Boolean, Column, Enum, ForeignKey, Integer, String, Text from sqlalchemy.orm import relationship from app.db.base import Base from app.db.base_class import Base as BaseClass class TaskStatus(str, enum.Enum): TODO = "todo" IN_PROGRESS = "in_progress" DONE = "done" class TaskPriority(str, enum.Enum): LOW = "low" MEDIUM = "medium" HIGH = "high" class Task(Base, BaseClass): title = Column(String(100), nullable=False, index=True) description = Column(Text, nullable=True) status = Column(Enum(TaskStatus), default=TaskStatus.TODO, nullable=False) priority = Column(Enum(TaskPriority), default=TaskPriority.MEDIUM, nullable=False) is_completed = Column(Boolean, default=False) # Foreign key to user owner_id = Column(Integer, ForeignKey("user.id"), nullable=False) # Relationship with user owner = relationship("User", back_populates="tasks")