.PHONY: setup dev test lint typecheck build migrate seed clean stop logs test-integration

setup:
	cp -n .env.example .env 2>/dev/null || true
	docker compose -f infrastructure/docker/docker-compose.dev.yml up -d postgres redis
	@echo "Waiting for PostgreSQL..."
	@sleep 3
	pnpm install
	pnpm run migrate --prefix apps/api
	pnpm run seed --prefix apps/api
	@echo "Setup complete. Run 'make dev' to start."

dev:
	docker compose -f infrastructure/docker/docker-compose.dev.yml up -d postgres redis
	pnpm run dev

test:
	pnpm run test

lint:
	pnpm run lint

typecheck:
	pnpm run typecheck

build:
	pnpm run build

migrate:
	pnpm run migrate --prefix apps/api

seed:
	pnpm run seed --prefix apps/api

stop:
	docker compose -f infrastructure/docker/docker-compose.dev.yml down

logs:
	docker compose -f infrastructure/docker/docker-compose.dev.yml logs -f

clean:
	docker compose -f infrastructure/docker/docker-compose.dev.yml down -v
	rm -rf node_modules apps/*/node_modules packages/*/node_modules

test-integration: migrate
	pnpm --filter @fleetforge/api test

test-e2e:
	bash tests/e2e.sh
