generate:
	rm -rf proto
	mkdir -p proto

	protoc -I ./api \
      --go_out ./proto --go_opt paths=source_relative \
      --go-grpc_out ./proto --go-grpc_opt paths=source_relative \
      --grpc-gateway_out ./proto --grpc-gateway_opt paths=source_relative \
      --swagger_out=allow_merge=true,merge_file_name=main:./proto \
      ./api/main.proto

run:
	go run ./cmd/evening_detective/main.go

build-macos:
	rm -rf bin
	CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 go build -o bin/evening_detective_macos_arm64 cmd/evening_detective/main.go

build-linux:
	rm -rf bin
	docker run --rm -v "$$PWD":/app -w /app golang:1.26-alpine sh -c \
  		"apk add --no-cache gcc musl-dev && \
		CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build -o bin/evening_detective_linux_arm64 cmd/evening_detective/main.go"


text_to_story:
	rm -f ./cmd/text_to_story/story.json
	go run ./cmd/text_to_story/main.go

clear:
	rm ./internal/tests/store.db

test:
	go test -count=1 ./...

text_to_program: text_to_story
	cp ./cmd/text_to_story/story.json ./data/story/story.json
