# -----------------------------------------------------------------------------
# SDD Engine - Automação de Infraestrutura
# -----------------------------------------------------------------------------

# Variáveis de Caminho
DOCKER_COMPOSE = docker compose -f .devcontainer/docker-compose.yml --env-file .devcontainer/.env
PROJECT_NAME = sdd-core

# Cores para o terminal
HELP_COLOR = \033[36m
RESET      = \033[0m

.PHONY: help up down restart build shell logs ps clean

help: ## Exibe esta ajuda
	@echo -e "$(HELP_COLOR)Comandos disponíveis:$(RESET)"
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "  $(HELP_COLOR)%-15s$(RESET) %s\n", $$1, $$2}'

up: ## Sobe o ecossistema (usa os perfis do .env.docker)
	@$(DOCKER_COMPOSE) up -d

down: ## Remove os containers e redes
	@$(DOCKER_COMPOSE) down

stop: ## Para os containers sem removê-los
	@$(DOCKER_COMPOSE) stop

restart: stop up ## Reinicia os serviços

build: ## Força o rebuild das imagens (Nginx e PHP)
	@$(DOCKER_COMPOSE) build --no-cache

shell: ## Entra no terminal Zsh do container PHP (App)
	@$(DOCKER_COMPOSE) exec -it app zsh

ps: ## Lista o status dos containers
	@$(DOCKER_COMPOSE) ps

logs: ## tail -f nos logs de todos os containers
	@$(DOCKER_COMPOSE) logs -f

logs-app: ## tail -f apenas nos logs do PHP-FPM
	@$(DOCKER_COMPOSE) logs -f app

clean: ## Limpeza profunda: remove volumes e imagens órfãs
	@$(DOCKER_COMPOSE) down -v --rmi local --remove-orphans

# Comando específico para o seu Multitenant
# Uso: make setup p=nome-do-projeto
setup: ## Prepara um novo projeto: cria pastas e ajusta permissões
	@mkdir -p ../$(p)/public
	@echo "<?php phpinfo();" > ../$(p)/public/index.php
	@echo -e "Projeto $(HELP_COLOR)$(p)$(RESET) criado em ../$(p)"
	@echo -e "Não esqueça de adicionar ao /etc/hosts: $(HELP_COLOR)127.0.0.1 $(p).localhost$(RESET)"
