#!/bin/sh # KoolTap Production Setup # Usage: ./scripts/setup.sh "My Venue" admin@myvenue.com mypassword [--force] # Does nothing if the database already has a venue, unless --force is given (wipes ALL data). # # Or with env vars: # SETUP_VENUE_NAME="My Venue" SETUP_ADMIN_EMAIL="admin@myvenue.com" SETUP_ADMIN_PASSWORD="mypassword" ./scripts/setup.sh VENUE_NAME="${SETUP_VENUE_NAME:-$1}" ADMIN_EMAIL="${SETUP_ADMIN_EMAIL:-$2}" ADMIN_PASSWORD="${SETUP_ADMIN_PASSWORD:-$3}" if [ -z "$VENUE_NAME" ] || [ -z "$ADMIN_EMAIL" ] || [ -z "$ADMIN_PASSWORD" ]; then echo "Usage: $0 \"Venue Name\" admin@example.com password" echo " or: SETUP_VENUE_NAME=... SETUP_ADMIN_EMAIL=... SETUP_ADMIN_PASSWORD=... $0" exit 1 fi echo "=== KoolTap Production Setup ===" echo "" echo " Venue: $VENUE_NAME" echo " Admin: $ADMIN_EMAIL" echo "" # Step 1: Generate Prisma client echo "[1/3] Generating Prisma client..." npx prisma generate 2>&1 || { echo "FAILED"; exit 1; } echo " ✓ Client generated" # Step 2: Apply database migrations echo "[2/3] Applying database migrations..." node prisma/deploy.js 2>&1 || { echo "FAILED"; exit 1; } echo " ✓ Migrations applied" # Step 3: Seed with your data echo "[3/3] Seeding database..." SETUP_VENUE_NAME="$VENUE_NAME" SETUP_ADMIN_EMAIL="$ADMIN_EMAIL" SETUP_ADMIN_PASSWORD="$ADMIN_PASSWORD" \ node prisma/setup.js "$4" || { echo "FAILED"; exit 1; } echo "" echo "Setup complete. Login at https://kooltap.com"