.PHONY: help install lint format test test-all smoke up down logs clean

help:
	@echo "Targets: install lint format test test-all smoke up down logs clean"

install:
	pip install -r core/requirements.txt
	pip install pytest pytest-asyncio ruff mypy freezegun

lint:
	ruff check core/src tests
	mypy core/src

format:
	ruff format core/src tests
	ruff check --fix core/src tests

test:
	pytest tests/unit -v

test-all:
	pytest -v

smoke:
	docker compose up -d
	@sleep 5
	curl -fsS http://localhost:8000/health || (docker compose down && exit 1)
	docker compose down

up:
	docker compose up

down:
	docker compose down

logs:
	docker compose logs -f

clean:
	rm -rf .pytest_cache .mypy_cache .ruff_cache __pycache__ data/*.sqlite data/*.jsonl
