# Makefile for Auto Stock Trading System

.PHONY: help install dev deploy stop restart logs backup clean

help: ## 도움말 표시
	@echo "Auto Stock Trading System - 사용 가능한 명령어:"
	@echo ""
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2}'

install: ## 초기 설정
	@echo "환경 설정 중..."
	@cp -n .env.example .env || true
	@chmod +x scripts/*.sh
	@echo "✓ 설정 완료. .env 파일을 수정한 후 'make deploy'를 실행하세요."

dev: ## 개발 모드 시작
	@./scripts/dev.sh

deploy: ## 프로덕션 배포
	@./scripts/deploy.sh

stop: ## 시스템 중지
	@./scripts/stop.sh

restart: ## 시스템 재시작
	@./scripts/restart.sh

logs: ## 로그 확인
	@./scripts/logs.sh

logs-backend: ## Backend 로그
	@./scripts/logs.sh backend

logs-mcp: ## MCP Server 로그
	@./scripts/logs.sh mcp-server

logs-frontend: ## Frontend 로그
	@./scripts/logs.sh frontend

backup: ## 데이터베이스 백업
	@./scripts/backup.sh

clean: ## 모든 컨테이너 및 볼륨 삭제
	@echo "⚠️  경고: 모든 데이터가 삭제됩니다!"
	@read -p "계속하시겠습니까? (y/N) " confirm && [ "$$confirm" = "y" ]
	@docker-compose down -v
	@echo "✓ 정리 완료"

rebuild: ## 전체 재빌드
	@docker-compose down
	@docker-compose build --no-cache
	@docker-compose up -d
	@echo "✓ 재빌드 완료"

status: ## 서비스 상태 확인
	@docker-compose ps

shell-backend: ## Backend 쉘 접속
	@docker exec -it autostock-backend /bin/bash

batch-analysis: ## 배치 분석 실행 (전체 종목)
	@docker exec autostock-backend python batch_daily_analysis.py

batch-test: ## 배치 분석 테스트 (10개 종목)
	@docker exec autostock-backend python batch_daily_analysis.py --test

batch-limit: ## 배치 분석 제한 실행 (사용: make batch-limit LIMIT=50)
	@docker exec autostock-backend python batch_daily_analysis.py --limit $(LIMIT)

shell-mcp: ## MCP Server 쉘 접속
	@docker exec -it autostock-mcp-server /bin/bash

shell-db: ## PostgreSQL 쉘 접속
	@docker exec -it autostock-postgres psql -U autostock -d autostock

test-backend: ## Backend 테스트
	@cd backend && pytest

test-frontend: ## Frontend 테스트
	@cd frontend && npm test

lint-backend: ## Backend 린트
	@cd backend && pylint app/

lint-frontend: ## Frontend 린트
	@cd frontend && npm run lint
