#!/bin/bash
# Esporta SOLO aspetto grafico MTM da vte_dev:
# - colori (vte_vteprop theme.*, incluso primary_colors)
# - logo login + wallpaper
# - dati società (vte_organizationdetails + storage/logo)
#
# Uso:
#   bash /var/www/html/server-ops/mtm-migration/mtm-export-branding-only.sh
#
# Output: /var/www/html/_backups/mtm-branding-only/
#
# SPDX-FileCopyrightText: 2026 Pantarei

set -euo pipefail

VTE_ROOT="${VTE_ROOT:-/var/www/html/vte_dev}"
DB_NAME="${DB_NAME:-vte_dev_new}"
DB_USER="${DB_USER:-gabry}"
DB_PASS="${DB_PASS:-PantAdmin@9}"
OUT_BASE="${OUT_BASE:-/var/www/html/_backups/mtm-branding-only}"

BRAND_DIR="${OUT_BASE}/files"
SQL_DIR="${OUT_BASE}/sql"
DOCS_DIR="${OUT_BASE}"

mkdir -p "${BRAND_DIR}/themes/logos/custom"
mkdir -p "${BRAND_DIR}/themes/wallpapers"
mkdir -p "${BRAND_DIR}/storage/logo"
mkdir -p "${SQL_DIR}"

mysql_cmd() {
	mysql -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" "$@"
}

# --- File: logo custom (tutti i file in themes/logos/custom) ---
if [[ -d "${VTE_ROOT}/themes/logos/custom" ]]; then
	cp -a "${VTE_ROOT}/themes/logos/custom/." "${BRAND_DIR}/themes/logos/custom/" 2>/dev/null || true
fi

# --- File: wallpaper referenziati in theme.login_background_images ---
WALLPAPER=$(mysql_cmd -N -e \
	"SELECT value FROM vte_vteprop WHERE property='theme.login_background_images' LIMIT 1" 2>/dev/null || true)
if [[ -n "${WALLPAPER}" ]]; then
	for f in $(echo "${WALLPAPER}" | grep -oE '[a-zA-Z0-9_.-]+\.(png|jpg|jpeg|gif)' || true); do
		if [[ -f "${VTE_ROOT}/themes/wallpapers/${f}" ]]; then
			cp -a "${VTE_ROOT}/themes/wallpapers/${f}" "${BRAND_DIR}/themes/wallpapers/"
		fi
	done
fi

# --- File: logo società (PDF, email) ---
if [[ -d "${VTE_ROOT}/storage/logo" ]]; then
	cp -a "${VTE_ROOT}/storage/logo/." "${BRAND_DIR}/storage/logo/" 2>/dev/null || true
fi

# --- SQL: tutte le proprietà theme.* (colori, logo path, wallpaper list) ---
{
	echo "-- MTM branding: vte_vteprop theme.* (merge su produzione)"
	echo "-- Generato: $(date -Iseconds)"
	echo "-- NON contiene moduli né dati CRM"
	echo ""
	echo "SET NAMES utf8mb4;"
	echo ""
	mysql_cmd -N -e "SELECT property, value FROM vte_vteprop WHERE property LIKE 'theme.%' ORDER BY property" 2>/dev/null \
	| while IFS=$'\t' read -r prop val; do
		[[ -z "${prop}" ]] && continue
		val_esc=$(printf '%s' "$val" | sed "s/'/''/g")
		echo "REPLACE INTO vte_vteprop (property, value) VALUES ('${prop}', '${val_esc}');"
	done
} > "${SQL_DIR}/01-vteprop-theme.sql"

# --- SQL: dati società (solo se tabella ha dati) ---
ORG_ROWS=$(mysql_cmd -N -e "SELECT COUNT(*) FROM vte_organizationdetails" 2>/dev/null || echo 0)
if [[ "${ORG_ROWS}" -gt 0 ]]; then
	{
		echo "-- MTM branding: organizationdetails"
		echo "-- ATTENZIONE: su produzione verificare ragione sociale/indirizzo (su dev può essere placeholder Acme)"
		echo ""
		mysqldump -u "${DB_USER}" -p"${DB_PASS}" "${DB_NAME}" \
			--no-create-info --complete-insert --replace \
			vte_organizationdetails 2>/dev/null
	} > "${SQL_DIR}/02-organizationdetails.sql"
fi

# --- Riepilogo leggibile ---
{
	echo "MTM branding export — vte_dev"
	echo "Generated: $(date -Iseconds)"
	echo ""
	echo "Colori (theme.primary_colors):"
	mysql_cmd -N -e "SELECT value FROM vte_vteprop WHERE property='theme.primary_colors'" 2>/dev/null || true
	echo ""
	echo "Logo login (theme.logos):"
	mysql_cmd -N -e "SELECT value FROM vte_vteprop WHERE property='theme.logos'" 2>/dev/null || true
	echo ""
	echo "Sfondo login:"
	mysql_cmd -N -e "SELECT value FROM vte_vteprop WHERE property='theme.login_background_images'" 2>/dev/null || true
	echo ""
	echo "Società:"
	mysql_cmd -e "SELECT organizationid, organizationname, logoname, city, country FROM vte_organizationdetails" 2>/dev/null || true
	echo ""
	echo "File inclusi:"
	find "${BRAND_DIR}" -type f 2>/dev/null | sort
} > "${OUT_BASE}/RIEPILOGO.txt"

cp /var/www/html/server-ops/mtm-migration/README-BRANDING-ONLY.md "${OUT_BASE}/README.md" 2>/dev/null || true
cp /var/www/html/server-ops/mtm-migration/mtm-import-branding-only.sh "${OUT_BASE}/" 2>/dev/null || true
cp /var/www/html/server-ops/mtm-migration/mtm-verify-branding-cli.php "${OUT_BASE}/" 2>/dev/null || true

chmod +x "${OUT_BASE}/mtm-import-branding-only.sh" 2>/dev/null || true
chmod +x "${OUT_BASE}/mtm-verify-branding-cli.php" 2>/dev/null || true

cd /var/www/html/_backups
tar -czf mtm-branding-only.tar.gz mtm-branding-only/

echo ""
echo "Pacchetto: ${OUT_BASE}"
echo "Archivio:  /var/www/html/_backups/mtm-branding-only.tar.gz"
echo "Riepilogo: ${OUT_BASE}/RIEPILOGO.txt"
ls -lh /var/www/html/_backups/mtm-branding-only.tar.gz
