.PHONY: build generate generate-swagger

ROOT_DIR := $(shell git rev-parse --show-toplevel)

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

build:
	make build-alertstore BUILD_DIR=cmd/alertstore

generate: generate-swagger

# The browser contract. pkg/api carries the annotations; the response types
# live in the domain packages, so --parseDependency is what pulls alert.Alert
# and friends into the schema section.
generate-swagger: SWAGGER ?= $(REPO_OUTPUT_BIN)/swag
generate-swagger: SWAGGER_LINT ?= $(REPO_OUTPUT_BIN)/swagger
generate-swagger: OUTPUT_DIR ?= $(REPO_ROOT)/packages/contracts/alertstore
generate-swagger: install-swag install-swagger
	$(SWAGGER) init -g doc.go -d pkg/api --parseDependency --parseInternal --output $(OUTPUT_DIR) --outputTypes yaml

	$(SWAGGER) fmt -d pkg/api

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