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()