99 lines
3.6 KiB
Python
99 lines
3.6 KiB
Python
from extensions import db
|
|
from models.user import User
|
|
from sqlalchemy.exc import IntegrityError
|
|
|
|
def seed_users():
|
|
# Lista de usuários para criar
|
|
users_data = [
|
|
#---login farmacia 1-----
|
|
{
|
|
"username": "admin",
|
|
"email": "admin@exemplo.com",
|
|
"password": "senha123",
|
|
"service_instance_id": 1
|
|
},
|
|
{
|
|
"username": "user1",
|
|
"email": "user1@exemplo.com",
|
|
"password": "senha456",
|
|
"service_instance_id": 1
|
|
},
|
|
#-----login farmacia 2--------
|
|
{
|
|
"username": "fogo_admin",
|
|
"email": "fogodechaoadmin@exemplo.com",
|
|
"password": "senha123",
|
|
"service_instance_id": 2
|
|
|
|
},
|
|
{
|
|
"username": "fogo_user_2",
|
|
"email": "fogodechaouser2@exemplo.com",
|
|
"password": "senha456",
|
|
"service_instance_id": 2
|
|
},
|
|
#----------login farmacia 3----------
|
|
{
|
|
"username": "sabin_admin",
|
|
"email": "sabinadmin@exemplo.com",
|
|
"password": "senha123",
|
|
"service_instance_id": 3
|
|
},
|
|
{
|
|
"username": "sabin_user_2",
|
|
"email": "sabinuser2@exemplo.com",
|
|
"password": "senha456",
|
|
"service_instance_id": 3
|
|
},
|
|
|
|
]
|
|
|
|
users_added = False # Flag para verificar se algum usuário foi adicionado
|
|
|
|
for user_data in users_data:
|
|
try:
|
|
# Verifica se o usuário já existe pelo username ou email
|
|
existing_user = User.query.filter(
|
|
(User.username == user_data["username"]) |
|
|
(User.email == user_data["email"])
|
|
).first()
|
|
|
|
if existing_user:
|
|
print(f"Usuário com username '{user_data['username']}' ou email '{user_data['email']}' já existe!")
|
|
continue # Pula para o próximo usuário caso já exista
|
|
|
|
# Caso o usuário não exista, cria um novo
|
|
user = User(
|
|
username=user_data["username"],
|
|
email=user_data["email"],
|
|
service_instance_id=user_data["service_instance_id"]
|
|
)
|
|
user.set_password(user_data["password"]) # Gerar o hash da senha
|
|
db.session.add(user)
|
|
print(f"Usuário {user_data['username']} criado com sucesso!")
|
|
users_added = True # Marca que um usuário foi adicionado
|
|
|
|
except IntegrityError as e:
|
|
db.session.rollback() # Reverte a transação em caso de erro
|
|
if 'phone' in str(e.orig):
|
|
print(f"Erro: O número de telefone '{user_data['phone']}' já está registrado. Tente outro número.")
|
|
elif 'email' in str(e.orig):
|
|
print(f"Erro: O email '{user_data['email']}' já está registrado. Tente outro email.")
|
|
else:
|
|
print(f"Erro ao criar o usuário {user_data['username']}. Ocorreu um erro interno.")
|
|
|
|
except Exception as e:
|
|
db.session.rollback() # Reverte a transação em caso de erro
|
|
print(f"Erro ao criar o usuário {user_data['username']}: {e}")
|
|
|
|
# Commit só se algum usuário foi realmente adicionado
|
|
if users_added:
|
|
try:
|
|
db.session.commit() # Commit após adicionar os novos usuários
|
|
print("Usuários criados com sucesso!")
|
|
except Exception as e:
|
|
print(f"Erro ao salvar os dados. Tente novamente mais tarde.")
|
|
db.session.rollback()
|
|
else:
|
|
print("Nenhum usuário foi adicionado, nada para salvar.")
|