#!/bin/bash

# Exit immediately on error
set -e

DB_USER="kodulehed"
DB_PASS="ZR04kpQ7QizCxwG3E4288ul"
DB_HOST="localhost"

ADMIN_USER="zoneplus"
ADMIN_PASS='nFFUMGB*VAk^F$SVdOn7^*Pk'
ADMIN_EMAIL="martin.toming@ir.ee"

BASE_URL="https://kodulehed.ir.ee"

WEB_USER="www-data"
WEB_GROUP="www-data"

SITE_NAME="$1"
GENERATE_KEY="$2"

if [ -z "$SITE_NAME" ]; then
  echo "Error: Site name not provided."
  echo "Usage: ./wp-fresh-install.sh sitename generate_key"
  exit 1
fi
if [ -z "$GENERATE_KEY" ]; then
  echo "Error: Key not provided."
  echo "Usage: ./wp-fresh-install.sh sitename generate_key"
  exit 1
fi

SITE_DIR="$SITE_NAME"
DB_NAME="$SITE_NAME"
SITE_URL="$BASE_URL/$SITE_NAME"

echo "Creating directory and setting permissions"
mkdir -p "$SITE_DIR"
# sudo chown -R "$WEB_USER:$WEB_GROUP" "$SITE_DIR"
# sudo chmod -R 777 "$SITE_DIR"
cd "$SITE_DIR"

echo "Installing WordPress site: $SITE_NAME"

wp core download --skip-content
wp config create \
  --dbname="$DB_NAME" \
  --dbuser="$DB_USER" \
  --dbpass="$DB_PASS" \
  --dbhost="$DB_HOST"

# DB
wp db create
wp config shuffle-salts

wp config set WP_DEBUG true
wp config set WP_DEBUG_LOG true

wp core install \
  --url="$SITE_URL" \
  --title="$SITE_NAME" \
  --admin_user="$ADMIN_USER" \
  --admin_password="$ADMIN_PASS" \
  --admin_email="$ADMIN_EMAIL" \
  --skip-email \

echo "WordPress install complete: $SITE_URL"

echo "Installing plugin: update-data-plugin"

PLUGIN_API="https://plugin.ssb.ee/tom/api/info/plugin/json"

PLUGIN_URL=$(curl -s "$PLUGIN_API" | jq -r '.download_url')

if [[ -z "$PLUGIN_URL" || "$PLUGIN_URL" == "null" ]]; then
  echo "Failed to fetch plugin download URL"
  exit 1
fi

echo "Installing plugin from: $PLUGIN_URL"

wp plugin install "$PLUGIN_URL" \
    --activate \
    --path=/var/www/domeenid/$SITE_NAME \

echo "Plugin installed and activated"

echo "Setting plugin permissions and ownership"

cd ..
# sudo chown -R "$WEB_USER:$WEB_GROUP" "$SITE_DIR"
# sudo chmod -R 777 "$SITE_DIR"
cd "$SITE_DIR"

echo "Setting up cli-config..."
wp update-data-plugin setup_cli_config \
    --skip-plugins=maintenance,loco-translate,all-in-one-wp-migration \

echo "Setting up site..."
wp update-data-plugin setup_site \
    --skip-plugins=maintenance,loco-translate,all-in-one-wp-migration

cd ..
# sudo chown -R "$WEB_USER:$WEB_GROUP" "$SITE_DIR"
# sudo chmod -R 777 "$SITE_DIR"
cd "$SITE_DIR"

echo "Running site generator..."

wp update-data-plugin generate "$GENERATE_KEY" \
    --path=/var/www/domeenid/$SITE_NAME \
    --lang=et \
    --site-preset=2 \
    --skip-plugins=maintenance,loco-translate,all-in-one-wp-migration \

wp update-data-plugin compile_css \
    --skip-plugins=maintenance,loco-translate,all-in-one-wp-migration \

echo "Site generation completed"