.PHONY: build up down logs restart deploy ps dev test install

VENV := $(CURDIR)/.venv/bin/python

install: ## Создать локальный venv и поставить зависимости (разработка)
	python3 -m venv .venv
	$(VENV) -m pip install --upgrade pip
	$(VENV) -m pip install -r requirements-dev.txt

build: ## Собрать образы микросервисов (Docker)
	docker compose build

up: ## Запустить все микросервисы одной командой (Docker)
	docker compose up -d

down: ## Остановить и удалить контейнеры (Docker)
	docker compose down

restart: ## Перезапустить микросервисы (Docker)
	docker compose restart

logs: ## Логи всех микросервисов (Docker)
	docker compose logs -f

ps: ## Статус микросервисов (Docker)
	docker compose ps

deploy: ## Собрать и запустить (деплой на сервере)
	./deploy.sh

test: ## Прогнать smoke-тест микросервисной связки (локальный venv)
	$(VENV) tests/smoke_test.py

dev: ## Запустить локально без Docker: lms-api :8000 + lms-web :8080
	@echo "Запуск lms-api на :8000 и lms-web на :8080..."
	@export LMS_API_URL=http://127.0.0.1:8000; \
	trap 'kill 0' EXIT; \
	cd src/backend && $(CURDIR)/.venv/bin/python -m uvicorn lms_api.main:app --reload --port 8000 & \
	cd src/frontend && $(CURDIR)/.venv/bin/python -m uvicorn lms_web.main:app --reload --port 8080 & \
	wait
