#!/usr/bin/env bash
# Instalare opțională Redis + php-redis pe Listara și activare în .env
# Rulează PE SERVER (sau via: ssh root@listara 'bash -s' < deploy/linux/setup-redis.sh)
set -euo pipefail

APP="${APP_ROOT:-/opt/apps/main-updater}"
ENV_FILE="${APP}/.env"

if [[ ! -f "${ENV_FILE}" ]]; then
  echo "ERROR: ${ENV_FILE} not found"
  exit 1
fi

echo "=== Listara: Redis setup ==="

export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get install -y redis-server php-redis

systemctl enable redis-server
systemctl start redis-server
redis-cli ping

PHP_VER="$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')"
if [[ -f "/etc/php/${PHP_VER}/fpm/conf.d/20-redis.ini" ]]; then
  systemctl restart "php${PHP_VER}-fpm" 2>/dev/null || true
fi

set_env() {
  local key="$1"
  local value="$2"
  if grep -q "^${key}=" "${ENV_FILE}"; then
    sed -i "s|^${key}=.*|${key}=${value}|" "${ENV_FILE}"
  else
    echo "${key}=${value}" >> "${ENV_FILE}"
  fi
}

set_env CACHE_DRIVER redis
set_env SESSION_DRIVER redis
set_env QUEUE_CONNECTION sync
set_env REDIS_HOST 127.0.0.1
set_env REDIS_PORT 6379
set_env REDIS_CACHE_DB 1
set_env REDIS_DB 0
set_env REDIS_CLIENT phpredis

cd "${APP}"
sudo -u www-data php artisan config:clear
sudo -u www-data php artisan cache:warm
sudo -u www-data php artisan cache:diagnostics

echo "=== Redis activ. Verifică CACHE_DRIVER=redis în cache:diagnostics ==="
