.PHONY: recreate down reset hard-reset restart frontend deploy rebuild migrate convex-key script

recreate:
	docker compose --profile services up -d

down:
	docker compose --profile services down

reset:
	$(MAKE) down
	$(MAKE) recreate

hard-reset:
	docker compose down
	docker compose up -d

restart:
	docker compose --profile services restart

frontend:
	docker compose build frontend
	$(MAKE) migrate
	docker compose up -d frontend

deploy:
	$(MAKE) restart
	$(MAKE) frontend

rebuild:
	docker compose build
	docker compose --profile services up -d

migrate:
	docker compose run --rm migrate

convex-key:
	@output=$$(docker compose exec convex ./generate_admin_key.sh 2>&1); \
	echo "$$output"; \
	if echo "$$output" | grep -q "Admin key:"; then \
		key=$$(echo "$$output" | tail -1); \
		sed -i '' 's#^CONVEX_SELF_HOSTED_ADMIN_KEY=.*#CONVEX_SELF_HOSTED_ADMIN_KEY='"$$key"'#' frontend/.env; \
		echo "Updated frontend/.env with new admin key"; \
	fi

script:
	@cd backend && docker compose --profile scripts run --rm script-runner scripts/$(subst .,/,$(word 2,$(MAKECMDGOALS))).py $(wordlist 3,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))

%:
	@:
