.PHONY: help network up down restart status \
        up-main up-gitea up-wedding \
        down-main down-gitea down-wedding \
        logs-main logs-gitea logs-wedding \
        pull-main pull-gitea pull-wedding \
        rebuild-wedding

# Orquestrador das 3 stacks. `lronetto-main` é o "platform layer"
# (postgres + redis + minio + pgadmin + caddy). Os repos lronetto-gitea e
# lronetto-wedding são clonados como diretórios IRMÃOS e referenciados aqui.
# Ajuste os caminhos abaixo se usar outro layout no disco.

NET := infra-net
WEDDING_DIR ?= ../lronetto-wedding
GITEA_DIR   ?= ../lronetto-gitea

DC_MAIN    := docker compose -f docker-compose.yml --env-file .env
DC_GITEA   := docker compose -f $(GITEA_DIR)/docker-compose.yml --env-file $(GITEA_DIR)/.env
DC_WEDDING := docker compose -f $(WEDDING_DIR)/docker-compose.yml --env-file $(WEDDING_DIR)/.env

help:
	@echo "Stacks: main (este repo) | gitea ($(GITEA_DIR)) | wedding ($(WEDDING_DIR))"
	@echo ""
	@echo "  make up                Sobe tudo na ordem (main -> gitea -> wedding)"
	@echo "  make down              Desce tudo na ordem inversa"
	@echo "  make restart           down + up"
	@echo "  make status            ps de todas as stacks"
	@echo ""
	@echo "  make up-main           Sobe só a stack main"
	@echo "  make up-gitea          Sobe só o gitea"
	@echo "  make up-wedding        Build + up do app wedding"
	@echo "  make rebuild-wedding   Force rebuild do app wedding"
	@echo "  make down-{main,gitea,wedding}"
	@echo "  make logs-{main,gitea,wedding}"
	@echo "  make pull-{main,gitea,wedding}"
	@echo "  make network           Cria a network external '$(NET)' (idempotente)"

network:
	@./network.sh

up: network up-main up-gitea up-wedding

down: down-wedding down-gitea down-main

restart: down up

status:
	@$(DC_MAIN) ps || true
	@$(DC_GITEA) ps || true
	@$(DC_WEDDING) ps || true

up-main: network
	$(DC_MAIN) up -d

up-gitea: network
	$(DC_GITEA) up -d

up-wedding: network
	$(DC_WEDDING) up -d --build

rebuild-wedding: network
	$(DC_WEDDING) build --no-cache
	$(DC_WEDDING) up -d

down-main:
	$(DC_MAIN) down

down-gitea:
	$(DC_GITEA) down

down-wedding:
	$(DC_WEDDING) down

logs-main:
	$(DC_MAIN) logs -f

logs-gitea:
	$(DC_GITEA) logs -f

logs-wedding:
	$(DC_WEDDING) logs -f

pull-main:
	$(DC_MAIN) pull

pull-gitea:
	$(DC_GITEA) pull

pull-wedding:
	$(DC_WEDDING) pull
