from datetime import datetime from typing import TYPE_CHECKING from sqlalchemy import ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship from models.base import BaseModel if TYPE_CHECKING: from models import User class WorkShift(BaseModel): __tablename__ = "work_shifts" id: Mapped[int] = mapped_column(primary_key=True) started_at: Mapped[datetime] = mapped_column( nullable=False, ) finished_at: Mapped[datetime] = mapped_column( nullable=True, ) user_id: Mapped[int] = mapped_column( ForeignKey("users.id"), ) user: Mapped["User"] = relationship( "User", back_populates="work_shifts", lazy="selectin", )