Initial commit: SIBU 2.0 MISSION
This commit is contained in:
58
backend/seed_test_data.py
Normal file
58
backend/seed_test_data.py
Normal file
@ -0,0 +1,58 @@
|
||||
from sqlmodel import Session
|
||||
from app.core.database import engine
|
||||
from app.models.business import Business
|
||||
from app.models.coupon import Coupon
|
||||
from datetime import datetime, timedelta
|
||||
import random
|
||||
|
||||
def seed_data():
|
||||
with Session(engine) as session:
|
||||
# 5 Tourist Spots (Businesses)
|
||||
categories = ["Restaurante", "Area Turistica", "Bebidas", "Viajes de Turismo"]
|
||||
|
||||
tourist_spots = [
|
||||
{"name": "Finca El Explorador", "area": "Boquete", "lat": 8.7845, "lng": -82.4350},
|
||||
{"name": "Cascada San Ramón", "area": "Boquete", "lat": 8.8120, "lng": -82.4650},
|
||||
{"name": "Balneario Majagua", "area": "Dolega", "lat": 8.5550, "lng": -82.4210},
|
||||
{"name": "Parque Miguel de Cervantes", "area": "David", "lat": 8.4275, "lng": -82.4285},
|
||||
{"name": "Cangilones de Gualaca", "area": "Dolega", "lat": 8.5230, "lng": -82.3120}
|
||||
]
|
||||
|
||||
created_businesses = []
|
||||
for spot in tourist_spots:
|
||||
biz = Business(
|
||||
name=spot["name"],
|
||||
address=f"Cerca de {spot['name']}, sector {spot['area']}",
|
||||
phone=f"6{random.randint(1000000, 9999999)}",
|
||||
category=random.choice(categories),
|
||||
area=spot["area"],
|
||||
latitude=spot["lat"],
|
||||
longitude=spot["lng"]
|
||||
)
|
||||
session.add(biz)
|
||||
session.flush() # To get the ID
|
||||
created_businesses.append(biz)
|
||||
|
||||
# 5 Coupons (Offers)
|
||||
for i in range(5):
|
||||
biz = random.choice(created_businesses)
|
||||
coupon = Coupon(
|
||||
title=f"Oferta Especial {i+1} - {biz.name}",
|
||||
description=f"¡Aprovecha esta increíble oferta en {biz.name}! Solo por tiempo limitado.",
|
||||
business_id=biz.id,
|
||||
business_name=biz.name,
|
||||
business_address=biz.address,
|
||||
business_phone=biz.phone,
|
||||
category=biz.category,
|
||||
discount_percentage=random.randint(10, 50),
|
||||
valid_from=datetime.now().isoformat(),
|
||||
valid_until=(datetime.now() + timedelta(days=30)).isoformat(),
|
||||
is_active=True
|
||||
)
|
||||
session.add(coupon)
|
||||
|
||||
session.commit()
|
||||
print("Successfully seeded 5 tourist spots and 5 offers.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
seed_data()
|
||||
Reference in New Issue
Block a user