# Convenience commands for IoT PreTester 4.6 Demo
.PHONY: help setup build rebuild up down restart status logs logs-backend logs-frontend test check shell-backend shell-frontend migrate

help:
	@echo "IoT PreTester 4.6 Demo"
	@echo "  make setup          Create .env when needed and build the images"
	@echo "  make up             Start the demo"
	@echo "  make down           Stop and remove the containers"
	@echo "  make status         Show container health"
	@echo "  make logs           Follow all logs"
	@echo "  make test           Run the backend test suite"
	@echo "  make check          Check the public health endpoints"
	@echo "  make rebuild        Rebuild and recreate both containers"

setup:
	@test -f .env || cp .env.example .env
	docker compose build
	@echo "Edit .env if needed, then run 'make up'."

build:
	docker compose build

rebuild:
	docker compose up -d --build --force-recreate

up:
	docker compose up -d
	@echo "Frontend: http://localhost:3000"
	@echo "Backend:  http://localhost:8000/api/health"

down:
	docker compose down

restart:
	docker compose restart

status:
	docker compose ps

logs:
	docker compose logs -f

logs-backend:
	docker compose logs -f backend

logs-frontend:
	docker compose logs -f frontend

test:
	docker compose exec backend python /app/django_project/manage.py test analyzer

check:
	@curl --fail --silent http://localhost:8000/api/health
	@curl --fail --silent http://localhost:3000/login >/dev/null
	@echo "IoT PreTester 4.6 Demo is reachable."

shell-backend:
	docker compose exec --workdir /app/django_project backend sh

shell-frontend:
	docker compose exec frontend sh

migrate:
	docker compose exec backend python /app/django_project/manage.py migrate
