import requests
import json
import os
from dotenv import load_dotenv
from get_token import get_access_token, update_env_file

def get_stock_info(token, data, cont_yn='N', next_key=''):
    """
    주식 기본정보 조회
    """
    # 1. 요청할 API URL
    host = 'https://mockapi.kiwoom.com' # 모의투자 
    #host = 'https://api.kiwoom.com' # 실전투자
    endpoint = '/api/dostk/stkinfo'
    url = host + endpoint
    
    # 2. header 데이터
    headers = {
        'Content-Type': 'application/json;charset=UTF-8',
        'authorization': f'Bearer {token}',
        'cont-yn': cont_yn,
        'next-key': next_key,
        'api-id': 'ka10001',
    }
    
    # 3. http POST 요청
    response = requests.post(url, headers=headers, json=data)
    
    # 4. 응답 상태 코드와 데이터 출력
    print('Status Code:', response.status_code)
    print('Header:', json.dumps({key: response.headers.get(key) for key in ['next-key', 'cont-yn', 'api-id']}, indent=4, ensure_ascii=False))
    print('Body:', json.dumps(response.json(), indent=4, ensure_ascii=False))
    
    return response.json()

if __name__ == '__main__':

    get_access_token()  # 토큰 발급 (자동으로 .env에 저장됨)
    
    # 1. .env 파일 로드
    load_dotenv(override=True)  # override=True로 기존 값 덮어쓰기
    access_token = os.getenv('KIWOOM_ACCESS_TOKEN')  # .env에서 다시 읽기
    
    if not access_token:
        print('❌ 토큰 발급에 실패했습니다.')
        exit()
    
    # 2. 요청 데이터 (삼성전자)
    params = {
        'stk_cd': '005930',  # 종목코드
    }
    
    # 3. API 실행
    print(f'📊 종목정보 조회 시작...')
    result = get_stock_info(token=access_token, data=params)
