front_ponto_eletronico/seeds/address_seed.py
2025-03-17 15:00:51 -03:00

74 lines
2.4 KiB
Python

from extensions import db
from models.address import Address
from models.address_type import AddressType
from models.user import User
def seed_address():
# Supondo que já exista um usuário no banco
user = User.query.filter_by(email="usuario@exemplo.com").first()
if not user:
print("Usuário não encontrado. Certifique-se de que o usuário foi criado.")
return
# Recuperando tipos de endereço
address_types = {
"residencial": AddressType.query.filter_by(name="residencial").first(),
"entrega": AddressType.query.filter_by(name="entrega").first(),
"cobrança": AddressType.query.filter_by(name="cobrança").first(),
}
# Lista de endereços a serem inseridos
addresses_to_create = [
{
"street": "Rua Exemplo, 123",
"city": "São Paulo",
"state": "SP",
"zip_code": "01000-000",
"country": "Brasil",
"address_type_id": address_types["residencial"].id,
},
{
"street": "Avenida Comercial, 456",
"city": "Rio de Janeiro",
"state": "RJ",
"zip_code": "20000-000",
"country": "Brasil",
"address_type_id": address_types["entrega"].id,
},
{
"street": "Rua de Cobrança, 789",
"city": "São Paulo",
"state": "SP",
"zip_code": "03000-000",
"country": "Brasil",
"address_type_id": address_types["cobrança"].id,
},
]
for address_data in addresses_to_create:
# Verificar se já existe um endereço com o mesmo CEP para o usuário
existing_address = Address.query.filter_by(
zip_code=address_data["zip_code"],
user_id=user.id
).first()
if existing_address:
print(f"Endereço com CEP {address_data['zip_code']} já existe. Pulando...")
continue
# Criar e adicionar o endereço
address = Address(
street=address_data["street"],
city=address_data["city"],
state=address_data["state"],
zip_code=address_data["zip_code"],
country=address_data["country"],
user_id=user.id,
address_type_id=address_data["address_type_id"]
)
db.session.add(address)
db.session.commit()
print(f"Endereços para {user.email} criados com sucesso!")