.PHONY: build test lint generate dev migrate seed export clean

BINARY := oikos
GO := /opt/homebrew/bin/go

build:
	$(GO) build -o $(BINARY) -tags timetzdata ./cmd/oikos

test:
	$(GO) test -race -cover ./...

lint:
	$(GO) vet ./...
	@command -v golangci-lint >/dev/null 2>&1 && golangci-lint run || echo "golangci-lint not installed, skipping"

generate:
	@echo "TODO: oapi-codegen + sqlc generation"

migrate:
	$(GO) run ./cmd/oikos migrate

seed:
	$(GO) run ./cmd/oikos seed

export:
	$(GO) run ./cmd/oikos export

dev:
	docker compose --profile dev up -d

clean:
	rm -f $(BINARY)
	$(GO) clean -testcache

tidy:
	$(GO) mod tidy
