.PHONY: build run test clean fmt lint

BINARY_NAME=openteam
BUILD_DIR=bin

# Build
build:
	go build -o $(BUILD_DIR)/$(BINARY_NAME) ./cmd/openteam

# Run
run: build
	./$(BUILD_DIR)/$(BINARY_NAME)

# Development run
dev:
	go run ./cmd/openteam

# Test
test:
	go test ./internal/... -v

# Test with coverage
test-cover:
	go test ./internal/... -coverprofile=coverage.out
	go tool cover -html=coverage.out -o coverage.html

# Format code
fmt:
	go fmt ./...

# Lint
lint:
	golangci-lint run

# Clean
clean:
	rm -rf $(BUILD_DIR)
	rm -f coverage.out coverage.html

# Tidy dependencies
tidy:
	go mod tidy

# Build for Linux
build-linux:
	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-amd64 ./cmd/openteam

# Build for macOS
build-mac:
	CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-arm64 ./cmd/openteam

# Build all platforms
build-all: build-linux build-mac

# Database migration (will be implemented)
migrate:
	@echo "Migration will be implemented in future"

# Seed data (will be implemented)
seed:
	@echo "Seeding will be implemented in future"
