.PHONY: run test lint migrate seed frontend docker-up docker-down

install:
	pip install -e ".[dev]"

run:
	uvicorn mixlift.main:app --reload --host 0.0.0.0 --port 8000

frontend:
	streamlit run frontend/app.py --server.port 8501

test:
	pytest tests/ -v --ignore=tests/test_modeling/test_engine_slow.py --ignore=tests/test_modeling/test_sampler_parity.py

test-all:
	pytest tests/ -v

test-cov:
	pytest tests/ -v --cov=mixlift --cov-report=term-missing --ignore=tests/test_modeling/test_engine_slow.py --ignore=tests/test_modeling/test_sampler_parity.py

lint:
	ruff check mixlift/ tests/
	ruff format --check mixlift/ tests/

format:
	ruff check --fix mixlift/ tests/
	ruff format mixlift/ tests/

migrate:
	alembic upgrade head

migration:
	alembic revision --autogenerate -m "$(msg)"

seed:
	python scripts/seed_demo_data.py

synthetic:
	python scripts/generate_synthetic.py

docker-up:
	docker compose up -d

docker-down:
	docker compose down
