.PHONY: dev dev-backend dev-frontend build test test-backend test-frontend test-ui lint fmt

dev: ## run backend + frontend dev servers
	@$(MAKE) -j2 dev-backend dev-frontend

dev-backend:
	cd backend && cargo run -p api

dev-frontend:
	cd frontend && npm run dev

build: ## production build: frontend into frontend/dist, backend release binary
	cd frontend && npm ci && npm run build
	cd backend && cargo build --release -p api

test: test-backend test-frontend test-ui

test-backend:
	cd backend && cargo test --workspace

test-frontend:
	cd frontend && npm test

test-ui:
	cd frontend && npm run test:ui

lint:
	cd backend && cargo fmt --check && cargo clippy --workspace --all-targets -- -D warnings
	cd frontend && npm run lint && npm run typecheck

fmt:
	cd backend && cargo fmt
	cd frontend && npm run format
