front_ponto_eletronico/seeds/shifts_times_seed.py
2025-04-16 19:48:09 -03:00

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.")