# Redax-WP — Makefile
# Verwendung: make <befehl>

.PHONY: help setup start stop restart logs status shell-web shell-wp shell-db \
        reset-wp backup update clean

help:
	@echo ""
	@echo "  Redax-WP — Verfügbare Befehle"
	@echo "  ─────────────────────────────────────────────"
	@echo "  make setup        Ersteinrichtung (interaktiv)"
	@echo "  make start        Stack starten"
	@echo "  make stop         Stack stoppen"
	@echo "  make restart      Web-Container neustarten"
	@echo "  make logs         Alle Logs (live)"
	@echo "  make logs-web     Nur Dashboard-Logs"
	@echo "  make logs-wp      Nur WordPress-Logs"
	@echo "  make status       Container-Status"
	@echo "  make shell-web    Shell im Dashboard-Container"
	@echo "  make shell-wp     Shell im WordPress-Container"
	@echo "  make shell-db     MySQL-Shell"
	@echo "  make backup       Daten sichern (./backups/)"
	@echo "  make update       Docker-Images aktualisieren"
	@echo "  make clean        Alle Daten löschen (VORSICHT!)"
	@echo ""

setup:
	@chmod +x setup.sh && ./setup.sh

start:
	docker compose up -d

stop:
	docker compose down

restart:
	docker compose up -d --no-deps --build web

restart-all:
	docker compose down && docker compose up -d

logs:
	docker compose logs -f

logs-web:
	docker compose logs -f web

logs-wp:
	docker compose logs -f wordpress

status:
	@echo ""
	@docker compose ps
	@echo ""
	@echo "  Ports:"
	@docker compose ps --format "table {{.Name}}\t{{.Ports}}" 2>/dev/null || true
	@echo ""

shell-web:
	docker compose exec web /bin/bash

shell-wp:
	docker compose exec wordpress /bin/bash

shell-db:
	@source .env 2>/dev/null; \
	docker compose exec db mysql -u$$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE

wp:
	@source .env 2>/dev/null; \
	docker run --rm \
	  --network "$$(basename $$(pwd))_redax-internal" \
	  -v "$$(pwd)/data/wordpress:/var/www/html" \
	  -e WORDPRESS_DB_HOST=redax-db \
	  -e WORDPRESS_DB_USER=$$MYSQL_USER \
	  -e WORDPRESS_DB_PASSWORD=$$MYSQL_PASSWORD \
	  -e WORDPRESS_DB_NAME=$$MYSQL_DATABASE \
	  --user root \
	  wordpress:cli $(filter-out $@,$(MAKECMDGOALS)) --allow-root

backup:
	@mkdir -p backups
	@STAMP=$$(date +%Y%m%d_%H%M%S); \
	tar -czf backups/redax-wp-$$STAMP.tar.gz data/ .env && \
	echo "✓ Backup erstellt: backups/redax-wp-$$STAMP.tar.gz"

update:
	docker compose pull
	docker compose up -d --build

clean:
	@echo "WARNUNG: Alle Daten werden gelöscht!"
	@read -rp "Sicher? (ja/N): " c; [ "$$c" = "ja" ] || exit 0
	docker compose down -v
	rm -rf data/ logs/
	@echo "✓ Bereinigt"
