# ──────────────────────────────────────────────
#  TalentScale — Makefile
# ──────────────────────────────────────────────

APP_NAME   = talentscale
BINARY     = bin/$(APP_NAME)
CMD        = ./cmd/api
MIGRATE    = migrate
MIGRATE_DB = $(shell grep DATABASE_URL .env | cut -d '=' -f2)
MIGRATE_DIR = pkg/database

.PHONY: run build tidy migrate-up migrate-down migrate-create clean

## Run the server in development mode
run:
	go run $(CMD)/main.go

## Build the binary
build:
	go build -o $(BINARY) $(CMD)/main.go

## Tidy and verify dependencies
tidy:
	go mod tidy
	go mod verify

## Apply all pending migrations
migrate-up:
	$(MIGRATE) -path $(MIGRATE_DIR) -database "$(MIGRATE_DB)" up

## Rollback the last migration
migrate-down:
	$(MIGRATE) -path $(MIGRATE_DIR) -database "$(MIGRATE_DB)" down 1

## Rollback ALL migrations (careful!)
migrate-reset:
	$(MIGRATE) -path $(MIGRATE_DIR) -database "$(MIGRATE_DB)" down -all

## Create a new migration: make migrate-create name=create_something
migrate-create:
	$(MIGRATE) create -ext sql -dir $(MIGRATE_DIR) -seq $(name)

## Remove build artifacts
clean:
	rm -rf bin/
