from datetime import datetime, timedelta from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy import ForeignKey, String from database import Base class SubTask(Base): __tablename__ = 'subtask' id: Mapped[int] = mapped_column(nullable=False, primary_key=True) task_id: Mapped[int] = mapped_column(ForeignKey('task.id'), nullable=False) title: Mapped[str] = mapped_column(String(128), nullable=False) description: Mapped[str | None] = mapped_column(String(128)) status: Mapped[str] = mapped_column(String(128), default='active', nullable=False) time_till: Mapped[datetime] = mapped_column(nullable=False, default=lambda _: datetime.utcnow() + timedelta(days=1)) time_finished: Mapped[datetime] = mapped_column(nullable=True) lon: Mapped[str | None] = mapped_column(String(128)) lat: Mapped[str | None] = mapped_column(String(128))