31 lines
		
	
	
		
			704 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			704 B
		
	
	
	
		
			Python
		
	
	
	
	
	
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",
 | 
						|
    )
 |