62 lines
2.9 KiB
Python
62 lines
2.9 KiB
Python
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.")
|