/
mkiiis
/
task_tracker
Обзор
Документация
Войти
/
mkiiis
/
task_tracker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
app/models.py
43 строки
2 KB
mkiiis
Initial commit
15 ноя 2025, 20:48
15 ноя 2025, 20:48
666c5fe
Код
Авторство
О чём код?
from sqlmodel import SQLModel, Field, Relationship from typing import Optional, List from datetime import datetime class User(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) email: str = Field(index=True, sa_column_kwargs={"unique": True}) name: Optional[str] = None password_hash: str role: str = "user" projects: List["Project"] = Relationship(back_populates="owner") tasks_assigned: List["Task"] = Relationship(back_populates="assignee") class Project(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) name: str description: Optional[str] = None owner_id: Optional[int] = Field(default=None, foreign_key="user.id") owner: Optional[User] = Relationship(back_populates="projects") tasks: List["Task"] = Relationship(back_populates="project") class Task(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) title: str description: Optional[str] = None project_id: Optional[int] = Field(default=None, foreign_key="project.id") assignee_id: Optional[int] = Field(default=None, foreign_key="user.id") status: str = "open" priority: int = 3 created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow) due_date: Optional[datetime] = None estimated_time_minutes: Optional[int] = None project: Optional[Project] = Relationship(back_populates="tasks") assignee: Optional[User] = Relationship(back_populates="tasks_assigned") class Comment(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) task_id: int = Field(foreign_key="task.id") author_id: int = Field(foreign_key="user.id") body: str created_at: datetime = Field(default_factory=datetime.utcnow)