.DEFAULT_GOAL := help
.PHONY: help install rebuild init dev dev-backend dev-frontend build start \
        db-import db-dump admin clean clean-db docker-up docker-down docker-logs

help:
	@echo "PCA Pijac — available targets:"
	@echo ""
	@echo "  make init           Install deps, rebuild native modules, import DB"
	@echo "  make install        Install deps in root, backend, frontend"
	@echo "  make rebuild        Rebuild native modules (argon2, sqlite3, sharp)"
	@echo "  make dev            Run backend + frontend in dev (parallel)"
	@echo "  make dev-backend    Run Directus backend only (nodemon)"
	@echo "  make dev-frontend   Run Next.js frontend only"
	@echo "  make build          Build frontend for production"
	@echo "  make start          Start backend + frontend in production mode"
	@echo ""
	@echo "  make db-import      Reset data/data.db from schema/dump.sql"
	@echo "  make db-dump        Dump current DB to schema/dump.sql"
	@echo "  make admin EMAIL=x@y PASSWORD=secret"
	@echo "                      Create a Directus admin user"
	@echo ""
	@echo "  make docker-up      docker compose up -d"
	@echo "  make docker-down    docker compose down"
	@echo "  make docker-logs    docker compose logs -f"
	@echo ""
	@echo "  make clean          Remove node_modules and .next"
	@echo "  make clean-db       Remove data/data.db"

install:
	pnpm install
	cd backend && pnpm install
	cd frontend && pnpm install

rebuild:
	cd backend && pnpm install --force
	cd frontend && pnpm install --force

init: install rebuild db-import
	@echo "Init complete. Run 'make admin EMAIL=... PASSWORD=...' to create an admin user."

dev:
	pnpm run dev

dev-backend:
	cd backend && pnpm run dev

dev-frontend:
	cd frontend && pnpm run dev

build:
	cd frontend && pnpm run build

start:
	cd backend && pnpm run start & \
	cd frontend && pnpm run start; \
	wait

db-import:
	cd backend && pnpm run db:import

db-dump:
	cd backend && pnpm run db:dump

admin:
	@if [ -z "$(EMAIL)" ] || [ -z "$(PASSWORD)" ]; then \
		echo "Usage: make admin EMAIL=you@example.com PASSWORD=secret"; \
		exit 1; \
	fi
	cd backend && pnpm directus users create \
		--email "$(EMAIL)" \
		--password "$(PASSWORD)" \
		--role 067808bd-7c13-40be-8c11-9ba654b79465

docker-up:
	docker compose up -d

docker-down:
	docker compose down

docker-logs:
	docker compose logs -f

clean:
	rm -rf node_modules backend/node_modules frontend/node_modules frontend/.next

clean-db:
	rm -f data/data.db
