.PHONY: build run test integration-test vet tidy fmt up down logs clean fraud-test fraud-install proto build: go build -o bin/api ./cmd/api run: go run ./cmd/api test: go test ./... -race -count=1 # Integration tests spin up real Postgres + NATS via testcontainers and an # in-process gRPC stub for the fraud engine. Requires Docker. integration-test: go test -tags=integration -count=1 -timeout=5m ./test/integration/... vet: go vet ./... tidy: go mod tidy fmt: gofmt -s -w . up: docker compose up --build -d down: docker compose down logs: docker compose logs -f api fraud-engine nats fraud-install: cd fraud-engine && python3 -m venv .venv && . .venv/bin/activate && pip install -e ".[dev]" fraud-test: cd fraud-engine && . .venv/bin/activate && python -m pytest -v # Regenerates Go + Python stubs from proto/fraud/v1/fraud.proto. # Requires fraud-engine venv (provides bundled protoc via grpcio-tools) # and the Go plugins (protoc-gen-go, protoc-gen-go-grpc) on $(go env GOPATH)/bin. proto: @command -v protoc-gen-go >/dev/null || go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2 @command -v protoc-gen-go-grpc >/dev/null || go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5.1 cd fraud-engine && . .venv/bin/activate && \ PATH="$$(go env GOPATH)/bin:$$PATH" python -m grpc_tools.protoc -I ../proto \ --go_out=.. --go_opt=module=github.com/alchemistkay/guestguard \ --go-grpc_out=.. --go-grpc_opt=module=github.com/alchemistkay/guestguard \ --python_out=. --pyi_out=. --grpc_python_out=. \ ../proto/fraud/v1/fraud.proto clean: rm -rf bin fraud-engine/.venv