/
viktoria284
/
task-manager-api
Обзор
Документация
Войти
/
viktoria284
/
task-manager-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/db/models.py
50 строк
1 KB
Vika
first commit
07 дек 2025, 00:22
07 дек 2025, 00:22
d3419e4
Код
Авторство
О чём код?
from datetime import datetime from enum import Enum from sqlalchemy import ( Column, Integer, String, DateTime, ForeignKey, Text, Enum as SqlEnum ) from sqlalchemy.orm import relationship from app.db.session import Base class TaskStatus(str, Enum): todo = "todo" in_progress = "in_progress" done = "done" class TaskPriority(str, Enum): low = "low" medium = "medium" high = "high" class UserDB(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) email = Column(String(255), unique=True, index=True, nullable=False) password_hash = Column(String(255), nullable=False) full_name = Column(String(255), nullable=False) created_at = Column(DateTime, default=datetime.utcnow) tasks = relationship("TaskDB", back_populates="owner") class TaskDB(Base): __tablename__ = "tasks" id = Column(Integer, primary_key=True, index=True) owner_id = Column(Integer, ForeignKey("users.id"), nullable=False) title = Column(String(255), nullable=False) description = Column(Text, nullable=True) status = Column(SqlEnum(TaskStatus, name="task_status"), default=TaskStatus.todo, nullable=False) priority = Column(SqlEnum(TaskPriority, name="task_priority"), default=TaskPriority.medium, nullable=False) due_date = Column(DateTime, nullable=True) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow) owner = relationship("UserDB", back_populates="tasks")