# Aether Platform - Operations Makefile
# Use these shortcuts for faster development and deployment.

.PHONY: up down restart-api build-api build-docker-dev build-docker-test build-docker-prod logs ps deploy-remote-test deploy-remote-prod

# Start the entire stack
up:
	docker compose up -d

# Stop the entire stack
down:
	docker compose down

# FAST UPDATE: Pick up Python code changes without rebuilding
# Since source is mounted as a volume, we just need to restart the container.
# This takes ~2 seconds instead of ~60 seconds.
restart-api:
	docker compose restart ae_api

# REBUILD API: Use this only when requirements.txt or Dockerfile changes.
build-api:
	docker compose up -d --build ae_api

# BUILD DOCKER UI: Build the SvelteKit container for the given mode.
# Use 'npm run dev' for active development (Vite HMR, no Docker).
# Use these only when testing the production-like Docker build locally.
build-docker-dev:
	docker compose build ae_app && docker compose up -d ae_app

build-docker-test:
	docker compose build --build-arg BUILD_MODE=test ae_app && docker compose up -d ae_app

build-docker-prod:
	docker compose build --build-arg BUILD_MODE=prod ae_app && docker compose up -d --remove-orphans ae_app

# View combined logs
logs:
	docker compose logs -f --tail=100

# Check service status
ps:
	docker compose ps

# Remote deploy (SSH to linode.oneskyit.com, run deploy.sh)
# Requires key-based SSH and deploy.sh committed + pulled on the server.
deploy-remote-test:
	ssh linode.oneskyit.com 'bash /srv/env/test_aether/deploy.sh test'

deploy-remote-prod:
	ssh linode.oneskyit.com 'bash /srv/env/prod_aether/deploy.sh prod'
