SHELL := /bin/sh

GOCACHE ?= $(CURDIR)/.tmp/go-build
GO := env GOCACHE=$(GOCACHE) go
COMPOSE := docker compose
SUPABASE_DIR := deploy/supabase
MIGRATE := ./scripts/migrate.sh

.PHONY: dev dev-down dev-logs migrate migrate-up migrate-down migrate-version test lint build frontend-build verify clean

dev:
	cd $(SUPABASE_DIR) && $(COMPOSE) up -d

dev-down:
	cd $(SUPABASE_DIR) && $(COMPOSE) down

dev-logs:
	cd $(SUPABASE_DIR) && $(COMPOSE) logs -f

migrate:
	$(MIGRATE) up

migrate-up:
	$(MIGRATE) up

migrate-down:
	$(MIGRATE) down 1

migrate-version:
	$(MIGRATE) version

test:
	env GOCACHE="$(GOCACHE)" go test ./platform/... ./backend/... ./worker/... ./console-proxy/...

lint:
	env GOCACHE="$(GOCACHE)" go vet ./platform/... ./backend/... ./worker/... ./console-proxy/...
	npm run lint --prefix frontend

build:
	env GOCACHE="$(GOCACHE)" go build ./backend/cmd/api ./worker/cmd/worker ./console-proxy/cmd/console-proxy

frontend-build:
	npm run build --prefix frontend

verify: lint test build frontend-build

clean:
	rm -rf frontend/dist ".tmp/go-build"
