SERVICE_A := ./service_a
SERVICE_B := ./service_b
PG_VERSION := 17.6-alpine3.22
DB_NAME := meteologica

.PHONY: dockerize-db
# Remove and create a development database.
dockerize-db:
	docker rm -f $(DB_NAME)
	docker run --name $(DB_NAME) -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=developer -e POSTGRES_DB=$(DB_NAME) -p 5432:5432 -d postgres:$(PG_VERSION)
	sleep 10
	make migrateup

.PHONY: migrateup
# Migrate all schemas, triggers and data located in database/migrations.
migrateup:
	go run -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest -path $(SERVICE_A)/server/database/migrations -database "postgresql://developer:secret@localhost:5432/$(DB_NAME)?sslmode=disable" -verbose up

.PHONY: run
# Run all services
run:
	go run ./service_a/server/main.go & go run ./service_b/server/main.go
