mock:
	@./scripts/gen_mock.sh

generate: mock

check: generate
	@./scripts/check.sh

test: generate
	@go install gotest.tools/gotestsum@latest
	@(gotestsum --junitfile ./unit-tests-pkgv2.xml ./...)

verify: check test

.PHONY: generate check test

.PHONY: install-openapi-generator
install-openapi-generator:
	cd tools/openapi-generator && npm install

.PHONY: generate-dm-client
generate-dm-client: ## Generate dm client
	@echo "==> Generating dm client"
	# Fix uint64 to int64 in the swagger file, as openapi-generator does not support uint64
	perl -i -pe 's/"format":\s*"uint64"/"format": "int64"/g' ./clusterproxy/serverless/dm.swagger.json
	rm -rf clusterproyx/serverless/dm
	cd tools/openapi-generator && npx openapi-generator-cli generate --inline-schema-options RESOLVE_INLINE_ENUMS=true --additional-properties=withGoMod=false,enumClassPrefix=true --global-property=apiTests=false,apiDocs=false,modelDocs=false,modelTests=false -i ../../clusterproxy/serverless/dm.swagger.json -g go -o ../../clusterproxy/serverless/dm --package-name dm
	go fmt ./clusterproxy/serverless/dm/... && goimports -w ./clusterproxy/serverless/dm/
