test:
	pytest --no-header

env:
	cp .env.example .env

run:
	uv run uvicorn src.main:app

up:
	GIT_COMMIT=$$(git rev-parse --short HEAD) docker compose up --build -d --force-recreate
	docker compose logs -f

migrate-init:
	export $$(cat .env | xargs) && aerich init-db

migrate-create:
	export $$(cat .env | xargs) && aerich migrate

migrate-up:
	export $$(cat .env | xargs) && aerich upgrade

down:
	docker compose down

clean:
	@docker rm -f $$(docker ps -aq) 2>/dev/null || true
	@docker rmi -f $$(docker images --filter "dangling=true" -q) 2>/dev/null || true
	@docker images --format "{{.Repository}}:{{.Tag}}" | grep -E "^(crm|local)" | xargs -r docker rmi -f 2>/dev/null || true
	@docker volume rm $$(docker volume ls -q) 2>/dev/null || true
	@docker network rm $$(docker network ls -q | grep -vE 'bridge|host|none') 2>/dev/null || true
	@docker system prune --volumes -f
	@echo "${GREEN}Docker очистка завершена. Базовые образы из registry сохранены.${NC}" 


