.PHONY: help start stop restart logs status clean backup restore update

help:
	@echo "MCC Monitoring Stack - Available Commands"
	@echo "=========================================="
	@echo "make start      - Start all services"
	@echo "make stop       - Stop all services"
	@echo "make restart    - Restart all services"
	@echo "make logs       - View logs (follow mode)"
	@echo "make status     - Check service status"
	@echo "make clean      - Remove all containers and volumes"
	@echo "make backup     - Backup all data"
	@echo "make restore    - Restore from backup"
	@echo "make update     - Update all images"

start:
	@echo "🚀 Starting MCC Monitoring Stack..."
	docker-compose up -d
	@echo "✅ Services started!"
	@make status

stop:
	@echo "🛑 Stopping services..."
	docker-compose down
	@echo "✅ Services stopped!"

restart:
	@echo "🔄 Restarting services..."
	docker-compose restart
	@echo "✅ Services restarted!"

logs:
	docker-compose logs -f

status:
	@echo "📊 Service Status:"
	@docker-compose ps
	@echo ""
	@echo "🌐 Access URLs:"
	@echo "  Grafana:    http://localhost:3000"
	@echo "  Loki:       http://localhost:3100"
	@echo "  InfluxDB:   http://localhost:8086"
	@echo "  Prometheus: http://localhost:9090"

clean:
	@echo "⚠️  This will remove all containers and volumes!"
	@read -p "Are you sure? (y/N): " confirm && [ $$confirm = y ]
	docker-compose down -v
	@echo "✅ Cleanup complete!"

backup:
	@echo "💾 Creating backups..."
	@mkdir -p ./backups
	docker run --rm -v mcc-grafana-data:/data -v $$(pwd)/backups:/backup alpine tar czf /backup/grafana-$$(date +%Y%m%d-%H%M%S).tar.gz /data
	docker run --rm -v mcc-loki-data:/data -v $$(pwd)/backups:/backup alpine tar czf /backup/loki-$$(date +%Y%m%d-%H%M%S).tar.gz /data
	docker run --rm -v mcc-influxdb-data:/data -v $$(pwd)/backups:/backup alpine tar czf /backup/influxdb-$$(date +%Y%m%d-%H%M%S).tar.gz /data
	@echo "✅ Backups created in ./backups/"

restore:
	@echo "📥 Restoring from latest backup..."
	@echo "⚠️  This will overwrite current data!"
	@read -p "Continue? (y/N): " confirm && [ $$confirm = y ]
	docker run --rm -v mcc-grafana-data:/data -v $$(pwd)/backups:/backup alpine sh -c "cd / && tar xzf /backup/$$(ls -t backups/grafana-*.tar.gz | head -1)"
	docker run --rm -v mcc-loki-data:/data -v $$(pwd)/backups:/backup alpine sh -c "cd / && tar xzf /backup/$$(ls -t backups/loki-*.tar.gz | head -1)"
	docker run --rm -v mcc-influxdb-data:/data -v $$(pwd)/backups:/backup alpine sh -c "cd / && tar xzf /backup/$$(ls -t backups/influxdb-*.tar.gz | head -1)"
	@echo "✅ Restore complete!"
	@make restart

update:
	@echo "🔄 Updating Docker images..."
	docker-compose pull
	docker-compose up -d
	@echo "✅ Update complete!"
