# ============================================================
# OCDP stack orchestration Makefile
# run-2: 构建前端静态资源 + 启动 nginx（统一入口）和 backend 栈
# clean-2: 清理 run-2 产生的容器 / 卷 / 网络
# ============================================================

SHELL := /bin/bash

COMPOSE_BIN ?= docker compose

ROOT_COMPOSE := docker-compose.yml
BACKEND_COMPOSE := backend/docker-compose.yml
BACKEND_PROFILE := backend

COMPOSE_STACK := $(COMPOSE_BIN) -f $(ROOT_COMPOSE) -f $(BACKEND_COMPOSE) --profile $(BACKEND_PROFILE)
COMPOSE_STACK_ALL := $(COMPOSE_BIN) -f $(ROOT_COMPOSE) -f $(BACKEND_COMPOSE)
STACK_ENV := ADAPTER_MODE=production BACKEND_BUILD_CONTEXT=$(abspath backend) BACKEND_BUILD_DOCKERFILE=$(abspath backend/Dockerfile) BACKEND_MOCK_BUILD_DOCKERFILE=$(abspath backend/Dockerfile.mock) INIT_DB_SQL_PATH=$(abspath backend/scripts/init-db.sql)

STACK_SERVICES := postgres backend nginx

.PHONY: run-2 clean-2 build-backend

run-2:
	@echo "═══════════════════════════════════════════════"
	@echo "🚀 run-2: rebuild static assets + start web gateway stack"
	@echo "═══════════════════════════════════════════════"
	@echo ""
	@export COMPOSE_PROJECT_NAME=ocdp && \
	export ADAPTER_MODE=production && \
	export BACKEND_BUILD_CONTEXT=$(abspath backend) && \
	export BACKEND_BUILD_DOCKERFILE=$(abspath backend/Dockerfile) && \
	export BACKEND_MOCK_BUILD_DOCKERFILE=$(abspath backend/Dockerfile.mock) && \
	export INIT_DB_SQL_PATH=$(abspath backend/scripts/init-db.sql) && \
	echo "→ Rebuilding frontend static assets" && \
	$(COMPOSE_STACK) run --rm frontend-build && \
	echo "" && \
	echo "→ Rebuilding backend image" && \
	$(COMPOSE_STACK) build backend && \
	echo "" && \
	echo "→ Bringing up backend + nginx services" && \
	$(COMPOSE_STACK) up -d $(STACK_SERVICES)
	@echo ""
	@echo "✅ Services online:"
	@echo "═══════════════════════════════════════════════"

clean-2:
	@echo "═══════════════════════════════════════════════"
	@echo "🧹 clean-2: tearing down run-2 stack"
	@echo "═══════════════════════════════════════════════"
	@$(COMPOSE_STACK_ALL) down --remove-orphans || true
	@$(COMPOSE_STACK_ALL) down -v --remove-orphans || true
	@$(COMPOSE_BIN) -f $(BACKEND_COMPOSE) down -v --remove-orphans || true
	@echo "✅ Environment cleaned"
	@echo "═══════════════════════════════════════════════"


