.PHONY: install run dev docker-build docker-up docker-down push deploy logs vault-setup test clean

REGISTRY = registry.i80.dk
IMAGE    = $(REGISTRY)/moneycapp-tink-demo

install:
	python3 -m venv .venv && .venv/bin/pip install -q -r requirements.txt
	cp -n .env.example .env || true
	@echo "✓ Done — edit .env with your Tink credentials"

run:
	.venv/bin/uvicorn src.main:app --host 0.0.0.0 --port 8000

dev:
	.venv/bin/uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload

docker-build:
	docker build -t moneycapp-tink-demo .

docker-up:
	docker compose up

docker-down:
	docker compose down

# --- Deploy to i80.dk ---

push:
	docker build --platform linux/amd64 -t $(IMAGE):latest .
	docker push $(IMAGE):latest
	@echo "✓ Image pushed to $(IMAGE):latest"

vault-setup:
	@echo "Storing Tink credentials in Vault..."
	vault kv put secret/moneycapp-tink-demo \
		client_id=$(TINK_CLIENT_ID) \
		client_secret=$(TINK_CLIENT_SECRET) \
		session_secret=$$(openssl rand -hex 32)
	@echo "✓ Vault secret stored at secret/moneycapp-tink-demo"

deploy: push
	scp moneycapp-tink-demo.nomad autobox.i80.dk:/tmp/
	ssh autobox.i80.dk 'export NOMAD_ADDR=https://nomad.i80.dk:4646 && nomad job run /tmp/moneycapp-tink-demo.nomad'
	@echo "✓ Deployed — https://tink-demo.i80.dk"

logs:
	ssh autobox.i80.dk 'export NOMAD_ADDR=https://nomad.i80.dk:4646 && nomad alloc logs -job moneycapp-tink-demo'

clean:
	rm -rf .venv __pycache__ src/__pycache__ src/**/__pycache__
