# Kadence — the handful of commands you actually run.
.DEFAULT_GOAL := help
SHELL := /bin/bash

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

up: ## Start the backend + web UI (http://localhost:8000)
	docker compose up -d --build

down: ## Stop everything
	docker compose down

logs: ## Follow the backend log
	docker compose logs -f app

dev: ## Backend with reload + Vite dev server (http://localhost:5173)
	docker compose -f docker-compose.yml -f docker-compose.dev.yml up

test: ## Run the backend test suite
	cd backend && PYTHONPATH=$$PWD .venv/bin/python -m pytest -q

backend-venv: ## Create the backend virtualenv for local work
	cd backend && python3 -m venv .venv && .venv/bin/pip install -e ".[dev]"

web-build: ## Build the web UI into frontend/dist
	cd frontend && npm install && npm run build

desktop: ## Run the native desktop app against localhost:8000
	cd desktop && python3 -m kadence_desktop

desktop-install: ## Install the launcher entry and icon for your user
	./desktop/packaging/install-desktop.sh

helper-install: ## Install the privileged blocking helper (asks for sudo)
	sudo ./desktop/helper/install.sh

report: ## Build and send today's report right now
	cd backend && PYTHONPATH=$$PWD .venv/bin/python -m app.cli report

set-password: ## Set/rotate the web login password (asks for a confirm)
	docker compose exec app python -m app.cli set-password

.PHONY: help up down logs dev test backend-venv web-build desktop desktop-install helper-install report set-password
