PYTHON := .venv/bin/python
PIP := .venv/bin/pip
SERVICE := service
MANAGE := $(PYTHON) $(SERVICE)/manage.py
PORT := 8742

.PHONY: help install run dev migrate test docker-up docker-down clean

help: ## Show this help
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'

install: ## Install vib package and dependencies
	$(PIP) install -e ".[all]" && $(PIP) install django gunicorn

run: migrate ## Start service (one command)
	cd $(SERVICE) && ../$(PYTHON) manage.py runserver 0.0.0.0:$(PORT)

dev: migrate ## Start dev server with hot reload
	cd $(SERVICE) && ../$(PYTHON) manage.py runserver 0.0.0.0:$(PORT)

migrate: ## Run database migrations
	$(MANAGE) migrate --run-syncdb

test: ## Run tests
	$(PYTHON) -m pytest tests/ -v

docker-up: ## Start with Docker Compose
	cd $(SERVICE) && docker compose up --build -d

docker-down: ## Stop Docker Compose
	cd $(SERVICE) && docker compose down

clean: ## Remove build artifacts and database
	rm -f $(SERVICE)/db.sqlite3
	rm -rf build/ dist/ *.egg-info src/*.egg-info
	find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
