"""
KIS 봇용 DB 초기화 스크립트
- DB 파일 생성 및 테이블 생성
- 기본 env_config 삽입 (새 스냅샷 행 1개 INSERT)

실행 시점: 자동 실행 없음. 최초 1회 또는 DB 새로 쓸 때만 수동 실행.
  예: python kis_bot/init_db.py
- 실행할 때마다 env_config에 새 행이 추가됨(INSERT만, 기존 행 수정 안 함).
- 봇은 항상 '가장 최신 행(id 최대)'만 사용함.
- 모의/실전 계좌 둘 다 넣으려면 아래 default_env에 KIS_ACCOUNT_NO(실전), KIS_ACCOUNT_NO_MOCK(모의) 값을 채워두고 실행하면 됨.
"""
import os
import sys
from pathlib import Path

# 현재 디렉토리를 경로에 추가
SCRIPT_DIR = Path(__file__).resolve().parent
sys.path.insert(0, str(SCRIPT_DIR))

from database import TradeDB

def init_database():
    """DB 초기화 및 기본 설정 삽입"""
    db_path = SCRIPT_DIR / "quant_bot.db"
    
    print(f"📊 DB 초기화 시작: {db_path}")
    
    # DB 초기화 (테이블 생성)
    db = TradeDB(db_path=str(db_path))
    
    # 기본 env_config 삽입
    default_env = {
        # 한투 API 설정
        "KIS_APP_KEY": os.environ.get("KIS_APP_KEY", ""),
        "KIS_APP_SECRET": os.environ.get("KIS_APP_SECRET", ""),
        "KIS_ACCOUNT_NO": os.environ.get("KIS_ACCOUNT_NO", ""),
        "KIS_ACCOUNT_CODE": os.environ.get("KIS_ACCOUNT_CODE", "01"),
        "KIS_ACCOUNT_NO_MOCK": os.environ.get("KIS_ACCOUNT_NO_MOCK", ""),
        "KIS_ACCOUNT_CODE_MOCK": os.environ.get("KIS_ACCOUNT_CODE_MOCK", "01"),
        "KIS_MOCK": os.environ.get("KIS_MOCK", "true"),
        
        # 단타 봇 설정
        "STOP_LOSS_PCT": "-0.03",
        "TAKE_PROFIT_PCT": "0.05",
        "MIN_DROP_RATE": "0.03",
        "MIN_RECOVERY_RATIO_SHORT": "0.5",
        "MAX_STOCKS": "3",
        
        # 늘림목 봇 설정
        "MAX_PER": "25",
        "MAX_PEG": "1.5",
        "MIN_GROWTH_PCT": "10",
        "MAX_POSITION_PCT": "0.20",
        "STOP_LOSS_PCT": "-0.30",
        "TAKE_PROFIT_PCT": "0.50",
        
        # 공통 설정
        "USE_RISK_CHECK": "true",
        "DAILY_STOP_LOSS_PCT": "-0.05",
        "CONSECUTIVE_LOSS_LIMIT": "4",
        "MAX_LOSS_PER_TRADE_KRW": "200000",
        "USE_BAN_SYSTEM": "true",
        "BAN_HOURS": "24",
        "USE_STOCK_FILTER": "true",
        "FORCE_MARKET_OPEN": "false",
    }
    
    env_id = db.insert_env_snapshot(default_env)
    if env_id:
        print(f"✅ 기본 env_config 삽입 완료 (id: {env_id})")
    else:
        print("⚠️ env_config 삽입 실패")
    
    print(f"✅ DB 초기화 완료: {db_path}")
    db.close()

if __name__ == "__main__":
    init_database()
