# orca-platform — IaC for the Breakpilot Platform.
#
#   make validate              parse + structural sanity check every manifest
#   make plan ENV=<env>        resolve manifests + overlay into .orca-out/<env>/
#   make apply ENV=<env>       (M1.2+) push resolved set to Orca controller
#   make diff ENV=<env>        alias for plan
#   make clean                 remove .orca-out/
#
# Local dev stack (dev/docker-compose.yml):
#   make dev-up                bring up Keycloak + Postgres + Redis + Mongo + MinIO
#   make dev-down              stop, keep volumes
#   make dev-reset             stop, wipe volumes, fresh start
#   make dev-logs              tail logs from every service

.PHONY: help validate plan apply diff clean dev-up dev-down dev-reset dev-logs

ENV ?=
ORCA_API_URL ?=
COMPOSE = docker compose -f dev/docker-compose.yml

help:
	@echo "orca-platform targets:"
	@echo "  make validate              syntax + structural check (all manifests)"
	@echo "  make plan ENV=<env>        resolve manifests for env (dev/stage/prod)"
	@echo "  make apply ENV=<env>       push resolved set (no-op until M1.2)"
	@echo "  make diff ENV=<env>        alias for plan"
	@echo "  make clean                 remove .orca-out/"
	@echo ""
	@echo "Local dev stack:"
	@echo "  make dev-up                bring up the dev compose stack"
	@echo "  make dev-down              stop, keep volumes"
	@echo "  make dev-reset             stop, wipe volumes, fresh start"
	@echo "  make dev-logs              tail logs"

validate:
	@./scripts/validate.sh

plan:
	@./scripts/plan.sh

diff: plan

apply:
	@./scripts/apply.sh

clean:
	@rm -rf .orca-out
	@echo "removed .orca-out/"

dev-up:
	@$(COMPOSE) up -d
	@echo "Keycloak: http://localhost:8080 (admin / admin-dev-pass on master realm)"
	@echo "          realm 'breakpilot-dev', user test@breakpilot.dev / test"

dev-down:
	@$(COMPOSE) down

dev-reset:
	@$(COMPOSE) down -v
	@$(COMPOSE) up -d

dev-logs:
	@$(COMPOSE) logs -f
