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

49 lines
1.9 KiB
Python

from datetime import datetime
from extensions import db
from models.user import User
from models.camera import Camera
from models.space import Space
from models.time_schedule import TimeSchedule
from models.service_instance import ServiceInstance
from models.record import Record
from random import choice
def seed_records():
# Verificar se a tabela de registros já contém dados
if db.session.query(Record).count() > 0:
print("A tabela de registros já contém dados. O seed não será executado.")
return
# Obter algumas instâncias de usuários, câmeras, espaços e outros registros para o seed
users = User.query.all()
cameras = Camera.query.all()
spaces = Space.query.all()
schedules = TimeSchedule.query.all()
service_instances = ServiceInstance.query.all()
# Verifica se as listas têm instâncias, caso contrário, informa o erro
if not users or not cameras or not spaces or not schedules or not service_instances:
print("Erro: Não há dados suficientes para preencher os registros.")
return
# Criando um exemplo de registro com dados aleatórios de relações
for _ in range(10): # Inserindo 10 registros de exemplo
record = Record(
user_id=choice(users).id,
camera_id=choice(cameras).id,
space_id=choice(spaces).id,
schedule_id=choice(schedules).id,
shift_id=choice([1, 2, 3]), # Escolha de shift aleatório: 1=Manhã, 2=Tarde, 3=Noite
service_instance_id=choice(service_instances).id,
created_at=datetime.now(),
updated_at=datetime.now()
)
# Adiciona o registro ao banco de dados
db.session.add(record)
# Commit no banco
db.session.commit()
print("Seed de registros concluído com sucesso.")