# WordPress AI SEO Plugin Makefile
# ================================

PLUGIN_SLUG := pn-ai-seo-geo
VERSION := $(shell grep "Version:" wp-ai-seo.php | sed 's/.*Version: *\([0-9.]*\).*/\1/')
RELEASE_DIR := release
ZIP_FILE := $(PLUGIN_SLUG)-$(VERSION).zip

.PHONY: help clean release zip install dev-install

# Default target
help:
	@echo -e "\033[36mWordPress AI SEO Plugin - Available Commands:\033[0m"
	@echo ""
	@echo "  make release      - Create a release-ready zip file"
	@echo "  make zip          - Alias for 'make release'"
	@echo "  make clean        - Remove release directory and zip files"
	@echo "  make install      - Install production dependencies"
	@echo "  make dev-install  - Install development dependencies"
	@echo ""

# Clean release artifacts
clean:
	@echo -e "\033[36mCleaning release artifacts...\033[0m"
	@rm -rf $(RELEASE_DIR)
	@rm -f $(PLUGIN_SLUG)-*.zip
	@echo -e "\033[32m✓ Clean complete\033[0m"

# Install production dependencies
install:
	@echo -e "\033[36mInstalling production dependencies...\033[0m"
	@composer install --no-dev --optimize-autoloader
	@echo -e "\033[32m✓ Production dependencies installed\033[0m"

# Install development dependencies
dev-install:
	@echo -e "\033[36mInstalling development dependencies...\033[0m"
	@composer install
	@echo -e "\033[32m✓ Development dependencies installed\033[0m"

# Create release zip
release: clean
	@echo -e "\033[36mCreating release package for version $(VERSION)...\033[0m"
	@mkdir -p $(RELEASE_DIR)/$(PLUGIN_SLUG)
	
	@echo -e "\033[36mCopying plugin files...\033[0m"
	@cp -r src $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	@cp -r assets $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	@cp -r languages $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	@cp wp-ai-seo.php $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	@cp README.md $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	@cp CHANGELOG.md $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	@cp composer.json $(RELEASE_DIR)/$(PLUGIN_SLUG)/
	
	@echo -e "\033[36mInstalling production dependencies...\033[0m"
	@cd $(RELEASE_DIR)/$(PLUGIN_SLUG) && composer install --no-dev --optimize-autoloader
	
	@echo -e "\033[36mCleaning up development files...\033[0m"
	@find $(RELEASE_DIR)/$(PLUGIN_SLUG) -name ".git*" -exec rm -rf {} + 2>/dev/null || true
	@find $(RELEASE_DIR)/$(PLUGIN_SLUG) -name ".DS_Store" -exec rm -f {} + 2>/dev/null || true
	@find $(RELEASE_DIR)/$(PLUGIN_SLUG) -name "Thumbs.db" -exec rm -f {} + 2>/dev/null || true
	@find $(RELEASE_DIR)/$(PLUGIN_SLUG) -name "*.log" -exec rm -f {} + 2>/dev/null || true
	@rm -rf $(RELEASE_DIR)/$(PLUGIN_SLUG)/tests 2>/dev/null || true
	@rm -rf $(RELEASE_DIR)/$(PLUGIN_SLUG)/docs 2>/dev/null || true
	@rm -rf $(RELEASE_DIR)/$(PLUGIN_SLUG)/stories 2>/dev/null || true
	@rm -rf $(RELEASE_DIR)/$(PLUGIN_SLUG)/data 2>/dev/null || true
	@rm -f $(RELEASE_DIR)/$(PLUGIN_SLUG)/.gitignore 2>/dev/null || true
	@rm -f $(RELEASE_DIR)/$(PLUGIN_SLUG)/composer.lock 2>/dev/null || true
	@rm -f $(RELEASE_DIR)/$(PLUGIN_SLUG)/phpunit.xml* 2>/dev/null || true
	
	@echo -e "\033[36mCreating zip archive...\033[0m"
	@cd $(RELEASE_DIR) && zip -r ../$(ZIP_FILE) $(PLUGIN_SLUG) -q
	
	@echo -e "\033[32m✓ Release package created: $(ZIP_FILE)\033[0m"
	@echo -e "\033[36mPackage size: $$(du -h $(ZIP_FILE) | cut -f1)\033[0m"
	
	@echo -e "\033[33mCleaning up temporary files...\033[0m"
	@rm -rf $(RELEASE_DIR)
	@echo -e "\033[32m✓ Release complete!\033[0m"

# Alias for release
zip: release