SHELL := /bin/sh
VENV := .venv
PYTHON := $(VENV)/bin/python

.PHONY: run setup backend frontend

run: setup
	@cd src && ../$(PYTHON) index.py & \
		backend_pid=$$!; \
		trap 'kill $$backend_pid 2>/dev/null || true' INT TERM EXIT; \
		cd src && npm run dev

setup: $(PYTHON) src/node_modules/.installed

$(PYTHON): requirements.txt
	python3 -m venv $(VENV)
	$(PYTHON) -m pip install -r requirements.txt

src/node_modules/.installed: src/package-lock.json
	cd src && npm ci
	@touch $@

backend: $(PYTHON)
	cd src && ../$(PYTHON) index.py

frontend: src/node_modules/.installed
	cd src && npm run dev
