# Makefile for buylater.email project
.PHONY: build lint fmt update test

# Variables
BINARY_NAME=buylater
BINARY_PATH=./cmd/web
BUILD_DIR=./bin

build:
	@echo "Unpacking vendor dependencies..."
	@go run tools/vendor/unpack.go
	@echo "Building $(BINARY_NAME)..."
	@mkdir -p $(BUILD_DIR)
	@go build -o $(BUILD_DIR)/$(BINARY_NAME) $(BINARY_PATH)
	@echo "Build complete: $(BUILD_DIR)/$(BINARY_NAME)"

lint:
	@echo "Linting..."
	@go vet ./...

fmt:
	@echo "Formatting..."
	@go fmt ./...

update:
	@echo "Updating dependencies..."
	@go mod tidy
	@go mod vendor
	@echo "Packing vendor dependencies..."
	@go run tools/vendor/pack.go
	@echo "Dependencies updated and vendored"

test:
	@echo "Unpacking vendor dependencies..."
	@go run tools/vendor/unpack.go
	@echo "Running tests..."
	@go test ./...
