.PHONY: test e2e e2e-local e2e-dry-run e2e-cleanup e2e-workspace-timeline e2e-workspace-timeline-local openapi

ROOT_DIR := $(shell git rev-parse --show-toplevel)
E2E_SCRIPT := ../../scripts/test/ticket-manager-e2e.sh
E2E_CASES ?= workspace-timeline
E2E_CONFIG_FILE ?= config.local.yaml
E2E_ARGS ?=
E2E_CA_CERT_FILE ?=
export E2E_CA_CERT_FILE

include $(ROOT_DIR)/scripts/make/go.mk

e2e:
	bash $(E2E_SCRIPT) $(E2E_ARGS) $(E2E_CASES)

e2e-local:
	bash $(E2E_SCRIPT) --mode local --config-file $(E2E_CONFIG_FILE) $(E2E_ARGS) $(E2E_CASES)

e2e-dry-run:
	bash $(E2E_SCRIPT) --dry-run $(E2E_ARGS) $(E2E_CASES)

e2e-cleanup:
	bash $(E2E_SCRIPT) --cleanup $(E2E_ARGS) $(E2E_CASES)

e2e-workspace-timeline:
	bash $(E2E_SCRIPT) $(E2E_ARGS) workspace-timeline

e2e-workspace-timeline-local:
	bash $(E2E_SCRIPT) --mode local --config-file $(E2E_CONFIG_FILE) $(E2E_ARGS) workspace-timeline

.PHONY: build docker-build-ticket-manager
build:
	make build-ticket-manager BUILD_DIR=cmd/ticket-manager

docker-build-ticket-manager: IMG ?= ticket-manager:latest
docker-build-ticket-manager:
	make build-ticket-manager BUILD_DIR=cmd/ticket-manager

	docker build -t $(IMG) -f $(ROOT_DIR)/infra/images/ticket-manager/Dockerfile $(ROOT_DIR)


generate: generate-mock generate-swagger


generate-swagger: SWAGGER ?= $(REPO_OUTPUT_BIN)/swag
generate-swagger: SWAGGER_LINT ?= $(REPO_OUTPUT_BIN)/swagger
generate-swagger: OUTPUT_DIR ?= $(REPO_ROOT)/packages/contracts/ticket-manager
generate-swagger: install-swag install-swagger
	$(SWAGGER) init -g app.go -d internal/app --parseDependency --output $(OUTPUT_DIR) --outputTypes yaml

	$(SWAGGER) fmt -d internal/app/handlers

	$(SWAGGER_LINT) validate $(OUTPUT_DIR)/swagger.yaml
