IMAGE_NAME ?= notes-vault-client
IMAGE_TAG ?= latest
CONTAINER_NAME ?= notes-vault-client
HOST_PORT ?= 8081
NOTES_API_UPSTREAM ?= http://host.docker.internal:8080

IMAGE := $(IMAGE_NAME):$(IMAGE_TAG)

.PHONY: help install build docker-build docker-run docker-stop docker-restart docker-logs docker-clean

help:
	@echo "Targets:"
	@echo "  make install          Install Node dependencies"
	@echo "  make build            Build the Vite app into dist/"
	@echo "  make docker-build     Build the Docker image"
	@echo "  make docker-run       Run the Docker container"
	@echo "  make docker-stop      Stop the running Docker container"
	@echo "  make docker-restart   Rebuild and restart the Docker container"
	@echo "  make docker-logs      Follow container logs"
	@echo "  make docker-clean     Remove the Docker image"
	@echo ""
	@echo "Variables:"
	@echo "  IMAGE_NAME=$(IMAGE_NAME)"
	@echo "  IMAGE_TAG=$(IMAGE_TAG)"
	@echo "  CONTAINER_NAME=$(CONTAINER_NAME)"
	@echo "  HOST_PORT=$(HOST_PORT)"
	@echo "  NOTES_API_UPSTREAM=$(NOTES_API_UPSTREAM)"

install:
	npm ci

build:
	npm run build

docker-build:
	docker build -t $(IMAGE) .

docker-run:
	docker rm -f $(CONTAINER_NAME) >/dev/null 2>&1 || true
	docker run --rm -d \
		--name $(CONTAINER_NAME) \
		-p $(HOST_PORT):80 \
		-e NOTES_API_UPSTREAM=$(NOTES_API_UPSTREAM) \
		$(IMAGE)
	@echo "Running $(IMAGE) at http://localhost:$(HOST_PORT)"

docker-stop:
	docker stop $(CONTAINER_NAME)

docker-restart: docker-build docker-run

docker-logs:
	docker logs -f $(CONTAINER_NAME)

docker-clean:
	docker image rm $(IMAGE)
