.PHONY: help dev dev-build prod build deploy logs logs-web logs-celery shell migrate makemigrations createsuperuser test clean stop restart status backup

# Default target
help:
	@echo "KeepItGoing Server - Docker Commands"
	@echo "====================================="
	@echo ""
	@echo "Development:"
	@echo "  make dev          - Start development environment with live reload"
	@echo "  make dev-build    - Rebuild and start development environment"
	@echo "  make shell        - Access Django shell"
	@echo "  make test         - Run tests"
	@echo ""
	@echo "Production:"
	@echo "  make prod         - Start production environment"
	@echo "  make build        - Build production containers"
	@echo "  make deploy       - Deploy to production (pull, build, migrate, restart)"
	@echo ""
	@echo "Database:"
	@echo "  make migrate      - Run database migrations"
	@echo "  make makemigrations - Create new migrations"
	@echo "  make createsuperuser - Create Django superuser"
	@echo "  make backup       - Backup database"
	@echo "  make dbshell      - Access MariaDB shell"
	@echo ""
	@echo "Logs & Monitoring:"
	@echo "  make logs         - View all container logs"
	@echo "  make logs-web     - View web container logs"
	@echo "  make logs-celery  - View celery worker logs"
	@echo "  make status       - Show container status"
	@echo ""
	@echo "Control:"
	@echo "  make stop         - Stop all containers"
	@echo "  make restart      - Restart all containers"
	@echo "  make clean        - Stop and remove containers, networks, volumes"
	@echo ""

# Development
dev:
	docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

dev-build:
	docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build

# Production
prod:
	docker-compose up -d

build:
	docker-compose build --no-cache

deploy:
	@echo "Deploying to production..."
	git pull
	docker-compose build
	docker-compose up -d
	docker-compose exec web python manage.py migrate
	docker-compose exec web python manage.py collectstatic --noinput
	docker-compose restart web
	@echo "Deployment complete!"
	@make status

# Database operations
migrate:
	docker-compose exec web python manage.py migrate

makemigrations:
	docker-compose exec web python manage.py makemigrations

createsuperuser:
	docker-compose exec web python manage.py createsuperuser

dbshell:
	docker-compose exec mariadb mysql -u keepitgoing -p keepitgoing

backup:
	@echo "Creating database backup..."
	@mkdir -p backups
	docker-compose exec mariadb mysqldump -u root -p keepitgoing > backups/backup-$$(date +%Y%m%d-%H%M%S).sql
	@echo "Backup created in backups/ directory"

# Django shell and tests
shell:
	docker-compose exec web python manage.py shell

test:
	docker-compose exec web python manage.py test

# Logs
logs:
	docker-compose logs -f

logs-web:
	docker-compose logs -f web

logs-celery:
	docker-compose logs -f celery-worker

# Control
stop:
	docker-compose down

restart:
	docker-compose restart

status:
	docker-compose ps

clean:
	docker-compose down -v
	@echo "Containers, networks, and volumes removed"
