# MCP Server Makefile
# Copyright (C) 2026 Moko Consulting <hello@mokoconsulting.tech>
# SPDX-License-Identifier: GPL-3.0-or-later

# ==============================================================================
# CONFIGURATION
# ==============================================================================

PROJECT_NAME := dolibarr-api-mcp
PROJECT_VERSION := 1.0.0

SRC_DIR := src
DIST_DIR := dist
DOCS_DIR := docs

NPM := npm
NODE := node

# Colors for output
COLOR_RESET := \033[0m
COLOR_GREEN := \033[32m
COLOR_YELLOW := \033[33m
COLOR_BLUE := \033[34m
COLOR_RED := \033[31m

# ==============================================================================
# TARGETS
# ==============================================================================

.PHONY: help
help: ## Show this help message
	@echo "$(COLOR_BLUE)╔════════════════════════════════════════════════════════════╗$(COLOR_RESET)"
	@echo "$(COLOR_BLUE)║            dolibarr-api-mcp Makefile                       ║$(COLOR_RESET)"
	@echo "$(COLOR_BLUE)╚════════════════════════════════════════════════════════════╝$(COLOR_RESET)"
	@echo ""
	@echo "Project: $(PROJECT_NAME) v$(PROJECT_VERSION)"
	@echo ""
	@echo "$(COLOR_GREEN)Available targets:$(COLOR_RESET)"
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "  $(COLOR_BLUE)%-20s$(COLOR_RESET) %s\n", $$1, $$2}'
	@echo ""

.PHONY: install-deps
install-deps: ## Install dependencies
	@echo "$(COLOR_BLUE)Installing dependencies...$(COLOR_RESET)"
	@$(NPM) install
	@echo "$(COLOR_GREEN)✓ Dependencies installed$(COLOR_RESET)"

.PHONY: build
build: ## Build TypeScript
	@echo "$(COLOR_BLUE)Building...$(COLOR_RESET)"
	@$(NPM) run build
	@echo "$(COLOR_GREEN)✓ Build complete$(COLOR_RESET)"

.PHONY: dev
dev: ## Watch and rebuild on changes
	@$(NPM) run dev

.PHONY: clean
clean: ## Clean build artifacts
	@echo "$(COLOR_BLUE)Cleaning...$(COLOR_RESET)"
	@rm -rf $(DIST_DIR)
	@echo "$(COLOR_GREEN)✓ Cleaned$(COLOR_RESET)"

.PHONY: setup
setup: ## Run interactive setup wizard
	@$(NPM) run setup

.PHONY: start
start: ## Start the MCP server
	@$(NPM) run start

.PHONY: lint
lint: ## Run linter
	@$(NPM) run lint

.PHONY: ci
ci: install-deps build ## Run CI pipeline
	@echo "$(COLOR_GREEN)✓ CI pipeline complete$(COLOR_RESET)"

.DEFAULT_GOAL := help
