run:
	.venv/bin/python flows/embedding_flow.py

web:
	.venv/bin/python -m uvicorn app.web.main:app --host 0.0.0.0 --port 8001 --reload

demo:
	.venv/bin/python -m uvicorn app.demo.main:app --host 0.0.0.0 --port 8010 --reload

compile:
	uv pip compile pyproject.toml -o requirements-frozen.txt

# ------------------------------------------------------------------------
# systemd user service — persistent equivalent of `make run` (the Prefect
# worker for the embedding_flow deployment). User-scope, no sudo needed.
# ------------------------------------------------------------------------

SERVICE_NAME := dr-sandbox-worker.service
SERVICE_DIR  := $(HOME)/.config/systemd/user
SERVICE_PATH := $(SERVICE_DIR)/$(SERVICE_NAME)
SERVICE_TMPL := deploy/dr-sandbox-worker.service.in

.PHONY: service-install service-uninstall service-start service-stop service-restart service-status service-logs

service-install:
	@mkdir -p $(SERVICE_DIR)
	sed 's|@ROOT@|$(CURDIR)|g' $(SERVICE_TMPL) > $(SERVICE_PATH)
	systemctl --user daemon-reload
	systemctl --user enable --now $(SERVICE_NAME)
	systemctl --user restart $(SERVICE_NAME)
	@echo
	@echo "installed $(SERVICE_NAME) -> $(SERVICE_PATH)"
	@echo "  status:  make service-status"
	@echo "  logs:    make service-logs"
	@loginctl show-user $$USER 2>/dev/null | grep -q "Linger=yes" || \
	  echo "  linger:  sudo loginctl enable-linger $$USER   # to survive logout / reboot"

service-uninstall:
	-systemctl --user disable --now $(SERVICE_NAME)
	-rm -f $(SERVICE_PATH)
	-systemctl --user daemon-reload
	@echo "removed $(SERVICE_NAME)"

service-start:
	systemctl --user start $(SERVICE_NAME)

service-stop:
	systemctl --user stop $(SERVICE_NAME)

service-restart:
	systemctl --user restart $(SERVICE_NAME)

service-status:
	systemctl --user status $(SERVICE_NAME)

service-logs:
	journalctl --user -u $(SERVICE_NAME) -f

