SHELL := /bin/sh

ENV_FILE ?= .env
BACKUP_ROOT ?= backups
RETENTION_DAYS ?= 14
BACKUP_SCRIPT := scripts/backup.sh

.PHONY: help db-dump files-backup full-backup predeploy-backup cleanup-backups

help:
	@echo "Usage: make <target> [ENV_FILE=.env BACKUP_ROOT=backups RETENTION_DAYS=14]"
	@echo ""
	@echo "Targets:"
	@echo "  db-dump         Create a gzip-compressed MySQL dump from .env settings"
	@echo "  files-backup    Archive runtime files such as uploads/, map_config.json, and .env"
	@echo "  full-backup     Run both db-dump and files-backup"
	@echo "  predeploy-backup Alias for the backup step executed before production deploy"
	@echo "  cleanup-backups Delete backup files older than RETENTION_DAYS"

db-dump:
	@ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" db

files-backup:
	@ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" files

full-backup:
	@ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full

predeploy-backup:
	@ENV_FILE="$(ENV_FILE)" BACKUP_ROOT="$(BACKUP_ROOT)" sh "$(BACKUP_SCRIPT)" full

cleanup-backups:
	@BACKUP_ROOT="$(BACKUP_ROOT)" RETENTION_DAYS="$(RETENTION_DAYS)" sh "$(BACKUP_SCRIPT)" cleanup