# FT Weekly TMS Leadership Report pipeline.
# Runs under a .venv managed at repo root.

SHELL := /bin/bash
PYTHON := .venv/bin/python
PIP := .venv/bin/pip
DATE := $(shell date -u +%Y-%m-%d)
SNAPSHOT_DIR := data/weekly_snapshots/$(DATE)
REPORT_DIR := reports/$(DATE)

.PHONY: all venv pull metrics summaries render publish cf-login clean-today

all: pull metrics summaries render

venv:
	@test -d .venv || python3 -m venv .venv
	@$(PIP) install --quiet -r requirements.txt

pull: venv
	@$(PYTHON) scripts/01_pull_pylon.py --date $(DATE)

metrics: venv
	@$(PYTHON) scripts/02_compute_metrics.py --date $(DATE)

summaries: venv
	@$(PYTHON) scripts/03_generate_summaries.py --date $(DATE)

render: venv
	@$(PYTHON) scripts/04_render_report.py --date $(DATE)
	@echo ""
	@echo "Report rendered:"
	@echo "  open $(REPORT_DIR)/report.html"

cf-login:
	@npx --yes wrangler@latest login

# Encrypt + deploy to Cloudflare Pages. Requires one-time `make cf-login` first.
# Usage:  make publish REPORT_PASSWORD='my-passphrase' [REPORT_DATE=2026-04-19]
publish:
	@test -n "$(REPORT_PASSWORD)" || { echo "REPORT_PASSWORD is required. Usage: make publish REPORT_PASSWORD='...'"; exit 2; }
	@REPORT_DATE=$(or $(REPORT_DATE),$(DATE)) REPORT_PASSWORD='$(REPORT_PASSWORD)' bash scripts/05_publish.sh

clean-today:
	@rm -rf $(SNAPSHOT_DIR) $(REPORT_DIR)
	@echo "Removed $(SNAPSHOT_DIR) and $(REPORT_DIR)"
