# Makefile — common tasks for local development

.PHONY: run build test migrate seed lint

## Start the server (auto-reloads with 'air' if installed)
run:
	@which air > /dev/null 2>&1 && air || go run ./cmd/server

## Build a binary
build:
	go build -o bin/server ./cmd/server

## Run all tests
test:
	go test ./... -v

## Apply the latest SQL migration
migrate:
	psql $$DATABASE_URL -f migrations/001_initial.sql

## Run the server with the race detector (finds concurrency bugs)
race:
	go run -race ./cmd/server

## Lint (requires golangci-lint)
lint:
	golangci-lint run ./...

## Install dev tools
tools:
	go install github.com/cosmtrek/air@latest
	go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
