.PHONY: proto server agent web dev up-server up-agent

PROTO_DIR := proto/agent/v1
PROTO_OUT  := server/internal/proto/agentv1
export PATH := $(HOME)/go/bin:/usr/local/go/bin:$(PATH)

# ── Protobuf codegen (Go side) ────────────────────────────────────────────────
proto:
	mkdir -p $(PROTO_OUT)
	protoc \
		--go_out=server --go_opt=module=github.com/containarr/server \
		--go-grpc_out=server --go-grpc_opt=module=github.com/containarr/server \
		-I proto \
		$(PROTO_DIR)/agent.proto

# ── Build ─────────────────────────────────────────────────────────────────────
server:
	cd server && go build ./...

agent:
	cd agent && cargo build --release

web:
	cd web && npm run build

# ── Docker ────────────────────────────────────────────────────────────────────
up-server:
	docker compose -f docker-compose.server.yml up --build -d

up-agent:
	docker compose -f docker-compose.agent.yml up --build -d

down-server:
	docker compose -f docker-compose.server.yml down

down-agent:
	docker compose -f docker-compose.agent.yml down

# ── Dev (local, no Docker) ───────────────────────────────────────────────────
dev-server:
	cd server && go run ./cmd/server

dev-web:
	cd web && npm run dev
