from extensions import db from models.shifts import Shift from models.time_schedule import TimeSchedule from models.service_instance import ServiceInstance from datetime import time def seed_shifts_and_schedules(): # Obter instâncias de serviço disponíveis service_instances = ServiceInstance.query.all() if not service_instances: print("Erro: Não há ServiceInstances cadastradas. Registre antes de criar os turnos.") return for instance in service_instances: # Criar ou obter turnos únicos por instância de serviço shifts = { "Manhã": Shift.query.filter_by(name="Manhã", service_instance_id=instance.id).first(), "Tarde": Shift.query.filter_by(name="Tarde", service_instance_id=instance.id).first(), "Noite": Shift.query.filter_by(name="Noite", service_instance_id=instance.id).first() } if not shifts["Manhã"]: shifts["Manhã"] = Shift(service_instance_id=instance.id, name="Manhã", start_time=time(6, 0), end_time=time(12, 0)) db.session.add(shifts["Manhã"]) if not shifts["Tarde"]: shifts["Tarde"] = Shift(service_instance_id=instance.id, name="Tarde", start_time=time(12, 0), end_time=time(18, 0)) db.session.add(shifts["Tarde"]) if not shifts["Noite"]: shifts["Noite"] = Shift(service_instance_id=instance.id, name="Noite", start_time=time(18, 0), end_time=time(23, 59)) db.session.add(shifts["Noite"]) db.session.commit() # Criar time schedules únicos por turno schedules = [ {"name": "Dias de Semana", "day": 'segunda,terça,quarta', "start_time": '8:00', "end_time": "17:00","interval_start":'12:00',"interval_end":'13:00',"type_interval":'abonado',"service_instance_id":'1'}, {"name": "Dias de Semana", "day": 'terça', "start_time": '8:00', "end_time": "17:00","interval_start":'12:00',"interval_end":'13:00',"type_interval":'abonado',"service_instance_id":'1'}, ] for schedule in schedules: if not TimeSchedule.query.filter_by( shift_id=schedule["shift"].id, ).first(): db.session.add( TimeSchedule( day=schedule["day"], start_time=schedule["start_time"], end_time=schedule["end_time"], interval_start=schedule["interval_start"], interval_end=schedule["interval_end"], type_interval=schedule["type_interval"], service_instance_id=schedule["service_instance_id"], ) ) db.session.commit() print("Seed de turnos e horários concluído com sucesso.")