LOGIN ?=
PASSWORD ?=
TEAM_ID ?= 35230
DOCKER_REGISTRY_URL ?= 83.166.249.64:5000
PORT ?= 8000
QDRANT_URL ?=
QDRANT_COLLECTION_NAME ?= evaluation
EMBEDDINGS_DENSE_URL ?=
EMBEDDINGS_DENSE_MODEL ?= Qwen/Qwen3-Embedding-0.6B
API_KEY ?= dev-api-key
RERANKER_URL ?=
QDRANT_DENSE_VECTOR_NAME ?= dense
QDRANT_SPARSE_VECTOR_NAME ?= sparse

REQUIRED_RUN_VARS := QDRANT_URL EMBEDDINGS_DENSE_URL API_KEY RERANKER_URL

IMAGE = $(DOCKER_REGISTRY_URL)/$(TEAM_ID)/search-service:latest

.PHONY: login build run push release

login:
	@: $(if $(LOGIN),,$(error LOGIN is required))
	@: $(if $(PASSWORD),,$(error PASSWORD is required))
	docker login $(DOCKER_REGISTRY_URL) -u $(LOGIN) -p $(PASSWORD)

build:
	docker build --platform linux/amd64 -t $(IMAGE) ./

run: build
	@: $(foreach var,$(REQUIRED_RUN_VARS),$(if $($(var)),,$(error $(var) is required for make run)))
	docker run --rm -p $(PORT):8000 \
		--add-host=host.docker.internal:host-gateway \
		-e QDRANT_URL=$(QDRANT_URL) \
		-e QDRANT_COLLECTION_NAME=$(QDRANT_COLLECTION_NAME) \
		-e EMBEDDINGS_DENSE_URL=$(EMBEDDINGS_DENSE_URL) \
		-e EMBEDDINGS_DENSE_MODEL=$(EMBEDDINGS_DENSE_MODEL) \
		-e API_KEY=$(API_KEY) \
		-e RERANKER_URL=$(RERANKER_URL) \
		-e QDRANT_DENSE_VECTOR_NAME=$(QDRANT_DENSE_VECTOR_NAME) \
		-e QDRANT_SPARSE_VECTOR_NAME=$(QDRANT_SPARSE_VECTOR_NAME) \
		$(IMAGE)

push:
	docker push $(IMAGE)

release: build push
	@echo "search-service pushed → $(IMAGE)"
