2025-06-12 18:28:09 +00:00

34 lines
946 B
Python

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")