.PHONY: help up down build logs migrate seed sample test test-core offline fmt

help:
	@echo "Invoice Match — common targets"
	@echo "  make build      Build all Docker images"
	@echo "  make up         Start the stack (web, app, service, mysql)"
	@echo "  make down       Stop the stack"
	@echo "  make logs       Tail all service logs"
	@echo "  make migrate    Run CodeIgniter migrations (incl. Shield)"
	@echo "  make seed       Seed initial admin + name_map + connections"
	@echo "  make sample     Generate the synthetic workbook + fixtures"
	@echo "  make test-core  Run the Python matching-core unit tests"
	@echo "  make offline    Run a full offline reconciliation over the sample data"

build:
	docker compose build

up:
	docker compose up -d

down:
	docker compose down

logs:
	docker compose logs -f

migrate:
	docker compose exec app php spark migrate --all

seed:
	docker compose exec app php spark db:seed InitialSeeder

sample:
	python3 sample_data/generate_sample.py

test-core:
	cd service && python3 -m pytest -q

offline:
	cd service && python3 -m app.runner --offline \
		--sheet ../sample_data/planning_sample.xlsx \
		--invoices ../sample_data/invoices_sample.json \
		--name-map ../sample_data/name_map_sample.json \
		--month 2026-10
