front_ponto_eletronico/models/shifts.py
2025-04-16 19:48:09 -03:00

31 lines
1.2 KiB
Python

from datetime import datetime
from sqlalchemy import Column, Integer, String, ForeignKey, Time
from sqlalchemy.orm import relationship
from extensions import db
class Shift(db.Model):
__tablename__ = 'shift'
id = db.Column(db.Integer, primary_key=True)
service_instance_id = db.Column(db.Integer, db.ForeignKey('service_instance.id'), nullable=False) # Relaciona com ServiceInstance
name = db.Column(db.String(50), nullable=False) # Nome do turno (Manhã, Tarde, etc.)
day = db.Column(db.String(20), nullable=False) # Ex: Segunda, Terça
start_time = db.Column(db.Time, nullable=False)
end_time = db.Column(db.Time, nullable=False)
interval_start = db.Column(db.Time, nullable=True)
interval_end = db.Column(db.Time, nullable=True)
type_interval = db.Column(db.String(50), nullable=False)
# Relacionamento com o modelo TimeSchedule
time_schedules = db.relationship('TimeSchedule', backref='shifts', lazy=True)
# Relacionamento com o modelo Record, utilizando a chave estrangeira corretamente
records = db.relationship("Record", back_populates="shifts", lazy=True)
def __repr__(self):
return f'<Shift {self.name} ({self.start_time} - {self.end_time})>'