from negotiation_agent.environment import NegotiationEnv
import numpy as np

def get_state_info_usecase(env: NegotiationEnv) -> dict:
    """
    현재 환경의 상태 정보를 상세하게 반환하는 유스케이스

    Args:
        env (NegotiationEnv): 협상 환경 인스턴스

    Returns:
        dict: 현재 상태에 대한 상세 정보
            - current_price: 현재 가격
            - initial_price: 초기 가격
            - price_zone: 가격 구간 (0: 목표가격 이하, 1: 목표~임계 사이, 2: 임계가격 초과)
            - acceptance_rate: 수락률
            - scenario: 현재 시나리오
    """
    state = env._get_state()
    acceptance_rate = (env.initial_price - env.current_price) / env.initial_price
    
    return {
        "current_price": env.current_price,
        "initial_price": env.initial_price,
        "price_zone": state[1],
        "acceptance_rate": acceptance_rate,
        "scenario": state[0]
    }
