.PHONY: help install update monitor health-check backup clean reinstall logs

help:
	@echo "LLM Server - Comandos disponibles:"
	@echo ""
	@echo "  make install          - Instalar todo desde cero (requiere sudo)"
	@echo "  make update           - Actualizar código y dependencias"
	@echo "  make monitor          - Ver monitoreo en tiempo real"
	@echo "  make health-check     - Verificar estado del sistema"
	@echo "  make backup           - Hacer backup de configuración"
	@echo "  make logs             - Ver logs de servicios"
	@echo "  make status           - Ver estado de servicios"
	@echo "  make start            - Iniciar servicios"
	@echo "  make stop             - Detener servicios"
	@echo "  make restart          - Reiniciar servicios"
	@echo "  make clean            - Limpiar archivos temporales"
	@echo "  make reinstall        - Reinstalar (redownload modelos)"

install:
	@echo "Instalando LLM Server..."
	sudo bash scripts/install.sh

install-quick:
	@echo "Instalación rápida (sin modelos)..."
	sudo bash scripts/install.sh --quick

install-gpu-only:
	@echo "Instalando solo GPU drivers..."
	sudo bash scripts/install.sh --gpu-only

update:
	bash scripts/update.sh

monitor:
	bash scripts/monitor.sh

health-check:
	bash scripts/health-check.sh

backup:
	bash scripts/backup.sh

logs:
	@echo "Logs de Ollama:"
	sudo journalctl -u ollama -f

logs-api:
	@echo "Logs de API:"
	sudo journalctl -u llm-api -f

status:
	@echo "Ollama:"
	@sudo systemctl status ollama --no-pager
	@echo ""
	@echo "LLM API:"
	@sudo systemctl status llm-api --no-pager

start:
	sudo systemctl start ollama llm-api
	@echo "✅ Servicios iniciados"

stop:
	sudo systemctl stop ollama llm-api
	@echo "✅ Servicios detenidos"

restart:
	sudo systemctl restart ollama llm-api
	@echo "✅ Servicios reiniciados"

clean:
	rm -rf __pycache__ .pytest_cache .venv venv
	find . -type f -name "*.pyc" -delete
	@echo "✅ Limpiado"

reinstall:
	@echo "Reinstalando LLM Server..."
	sudo bash scripts/install.sh --gpu-only
	make update
	@echo "✅ Reinstalación completada"

info:
	@echo "========== INFORMACIÓN DEL SERVIDOR =========="
	@echo "Hostname: $$(hostname)"
	@echo "IP: $$(hostname -I)"
	@echo "SO: $$(lsb_release -d | cut -f2)"
	@echo "CPU: $$(lscpu | grep 'Model name' | cut -d: -f2)"
	@echo "RAM: $$(free -h | awk 'NR==2 {print $$2}')"
	@echo "GPU: $$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null || echo 'No disponible')"
	@echo "=============================================="