#!/usr/bin/env sh
set -eu

composer install

if [ ! -f .env ]; then
  cp .env.example .env
fi

cp .env .env.docker

set_env_value() {
  key="$1"
  value="$2"
  file=".env.docker"

  if grep -q "^${key}=" "$file"; then
    sed -i "s|^${key}=.*|${key}=${value}|" "$file"
  else
    printf '\n%s=%s\n' "$key" "$value" >> "$file"
  fi
}

set_env_value APP_ENV docker
set_env_value APP_DEBUG true
set_env_value APP_URL http://localhost:8000
set_env_value APP_FRONTEND_URL http://localhost:5173
set_env_value VITE_API_BASE_URL http://localhost:8000
set_env_value CORS_ALLOWED_ORIGINS http://localhost:5173
set_env_value DB_CONNECTION mysql
set_env_value DB_HOST db
set_env_value DB_PORT 3306
set_env_value DB_DATABASE amc_database_v2
set_env_value DB_USERNAME amc
set_env_value DB_PASSWORD amc
set_env_value CACHE_STORE database
set_env_value SESSION_DRIVER database
set_env_value QUEUE_CONNECTION database

if ! grep -q '^APP_KEY=base64:' .env.docker; then
  php artisan --env=docker key:generate --force --no-interaction
fi

php artisan --env=docker optimize:clear
php artisan --env=docker migrate --force --no-interaction

if [ "${DEMO_SEED_ON_START:-false}" = "true" ]; then
  php artisan --env=docker demo:seed-import --force --no-interaction
fi

php artisan --env=docker serve --host=0.0.0.0 --port=8000