← back to Costa Rica

scripts/seed_prod_demos.sql

26 lines

-- Prod demo bookable inventory (Steve-approved 2026-08-07, "seed prod demos").
-- Clearly labeled "Demo —" / source='seed-demo' so it's never mistaken for a
-- real host listing. Idempotent (ON CONFLICT). Reversible:
--   DELETE FROM place_booking WHERE place_id IN (SELECT id FROM places WHERE source='seed-demo');
--   DELETE FROM places WHERE source='seed-demo';

INSERT INTO places (slug,name,category,vertical,region_id,description,price_range,rating,source,status)
SELECT d.slug,d.name,d.category,d.vertical,
       (SELECT id FROM regions ORDER BY id LIMIT 1),
       d.descr,d.pr,d.rating,'seed-demo','active'
FROM (VALUES
 ('demo-casa-tamarindo','Demo — Casa Tamarindo (Beachfront)','tourism','tourism_hotel','DEMO listing for app testing. Beachfront villa, 3BR.','$$$',4.8),
 ('demo-arenal-lodge','Demo — Arenal Volcano Lodge','tourism','tourism_hotel','DEMO listing. Volcano-view rooms + hot springs.','$$$',4.7),
 ('demo-ma-canopy-tour','Demo — Manuel Antonio Canopy Tour','tourism','tourism_tour','DEMO listing. 2.5h zipline + wildlife guide.','$$',4.9),
 ('demo-nosara-surf','Demo — Nosara Surf & Yoga Retreat','tourism','tourism_tour','DEMO listing. Daily surf + yoga package.','$$',4.6)
) AS d(slug,name,category,vertical,descr,pr,rating)
ON CONFLICT (slug) DO UPDATE SET status='active';

INSERT INTO place_booking (place_id, booking_type, currency, base_price, cleaning_fee, max_guests, min_nights, instant_book)
SELECT id, CASE WHEN vertical='tourism_tour' THEN 'slot' ELSE 'nightly' END, 'USD',
       CASE WHEN vertical='tourism_tour' THEN 6500 ELSE 18500 END,
       CASE WHEN vertical='tourism_tour' THEN 0 ELSE 5000 END,
       CASE WHEN vertical='tourism_tour' THEN 8 ELSE 6 END, 1, TRUE
FROM places WHERE source='seed-demo'
ON CONFLICT (place_id) DO UPDATE SET is_active=TRUE, base_price=EXCLUDED.base_price;