.PHONY: dev prod deploy logs stop clean restart ps help test test-backend test-frontend migrate migrate-down

dev:             ## Запустить локальную разработку
	docker compose up -d
	cd backend && go run ./cmd/api &
	cd frontend && npm run dev

prod:            ## Запустить продакшен (сборка + деплой)
	bash deploy/deploy.sh

deploy: prod     ## Алиас для prod

logs:            ## Логи продакшена
	docker compose -f deploy/docker-compose.prod.yml logs -f

stop:            ## Остановить всё
	docker compose down
	docker compose -f deploy/docker-compose.prod.yml down

clean:           ## Остановить + удалить volume
	docker compose down -v
	docker compose -f deploy/docker-compose.prod.yml down -v

restart:         ## Перезапустить продакшен
	docker compose -f deploy/docker-compose.prod.yml restart

ps:              ## Статус контейнеров
	docker compose -f deploy/docker-compose.prod.yml ps

test:            ## Запустить все тесты
	$(MAKE) test-backend
	$(MAKE) test-frontend

test-backend:    ## Запустить тесты бэкенда
	cd backend && go test ./... -v -race

test-frontend:   ## Запустить тесты фронтенда
	cd frontend && npm run test 2>/dev/null || echo "No test script configured yet"

migrate:         ## Накатить миграции (локально)
	docker compose run --rm migrate

migrate-down:    ## Откатить последнюю миграцию (локально)
	docker compose run --rm migrate migrate -path=/migrations -database "postgres://photoplaces:photoplaces_dev@postgres:5432/photoplaces?sslmode=disable" down 1

help:            ## Показать помощь
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'
