Automated Action e7225e6443 Add Task Management System with FastAPI and SQLite
Features:
- User authentication with JWT tokens
- Task and project CRUD operations
- Task filtering and organization

generated with BackendIM... (backend.im)
2025-05-12 10:14:26 +00:00

39 lines
1.2 KiB
Python

from sqlalchemy import Boolean, Column, Integer, String, ForeignKey, DateTime, Text, Enum
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
import enum
from app.database import Base
class TaskPriority(str, enum.Enum):
LOW = "low"
MEDIUM = "medium"
HIGH = "high"
class TaskStatus(str, enum.Enum):
TODO = "todo"
IN_PROGRESS = "in_progress"
DONE = "done"
class Task(Base):
__tablename__ = "tasks"
id = Column(Integer, primary_key=True, index=True)
title = Column(String, index=True)
description = Column(Text, nullable=True)
priority = Column(Enum(TaskPriority), default=TaskPriority.MEDIUM)
status = Column(Enum(TaskStatus), default=TaskStatus.TODO)
due_date = Column(DateTime, nullable=True)
created_at = Column(DateTime, default=func.now())
updated_at = Column(DateTime, default=func.now(), onupdate=func.now())
# Foreign keys
owner_id = Column(Integer, ForeignKey("users.id"))
project_id = Column(Integer, ForeignKey("projects.id"), nullable=True)
# Relationships
owner = relationship("User", back_populates="tasks")
project = relationship("Project", back_populates="tasks")