
- Set up project structure and dependencies - Create database models for tasks and users with SQLAlchemy - Configure Alembic for database migrations - Implement authentication system with JWT tokens - Create CRUD API endpoints for tasks and users - Add health check endpoint - Update README with documentation
33 lines
953 B
Python
33 lines
953 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") |