from datetime import datetime from sqlalchemy import Column, Integer, String, ForeignKey, Time from sqlalchemy.orm import relationship from extensions import db from models.time_schedule import TimeSchedule # Certo! # 🔗 Tabela de associação many-to-many shift_time_schedule = db.Table( 'shift_time_schedule', db.Column('shift_id', db.Integer, db.ForeignKey('shift.id'), primary_key=True), db.Column('time_schedule_id', db.Integer, db.ForeignKey('time_schedules.id'), primary_key=True) ) 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) name = db.Column(db.String(50), nullable=False) 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) description = db.Column(db.String(255), nullable=True) # Descrição do turno tolerance = db.Column(db.Integer, nullable=True) # Tolerância em minutos # 🗓️ Relacionamento com os dias (TimeSchedule usados como dias da semana) time_schedules = db.relationship( 'TimeSchedule', secondary=shift_time_schedule, backref='shifts', lazy='subquery' ) # Relacionamento com records records = db.relationship("Record", back_populates="shifts", lazy=True) def __repr__(self): return f''