.PHONY: help db-up db-down db-reset sqlc-generate run dev test

help: ## Mostra esta mensagem de ajuda
	@echo "Comandos disponíveis:"
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2}'

db-up: ## Inicia o banco de dados PostgreSQL
	docker-compose up -d
	@echo "Aguardando banco de dados ficar pronto..."
	@timeout /t 5 /nobreak > nul
	@echo "Banco de dados pronto!"

db-down: ## Para o banco de dados
	docker-compose down

db-reset: ## Reseta o banco de dados (apaga todos os dados)
	docker-compose down -v
	docker-compose up -d
	@echo "Aguardando banco de dados ficar pronto..."
	@timeout /t 5 /nobreak > nul
	@echo "Banco de dados resetado!"

sqlc-generate: ## Gera código Go a partir das queries SQL
	sqlc generate

run: ## Executa a aplicação
	go run cmd/api/main.go

dev: db-up sqlc-generate run ## Inicia ambiente de desenvolvimento completo

test: ## Executa os testes
	go test -v ./...

swagger: ## Gera documentação Swagger
	swag init -g cmd/api/main.go -o docs
