export interface UserFriendlyError {
    title: string;
    message: string;
    action: string;
}

export class ErrorTranslator {
    public static translate(error: any): UserFriendlyError {
        const msg = String(error.message || error).toLowerCase();

        if (msg.includes('fetch') || msg.includes('network') || msg.includes('econnrefused')) {
            return {
                title: '🌐 연결 오류 (Connection Error)',
                message: 'AI 엔진(LM Studio 또는 Ollama)에 연결할 수 없습니다. 서버가 실행 중인지 확인해주세요.',
                action: '서버를 실행한 후 "Refresh" 버튼을 눌러주세요.'
            };
        }

        if (msg.includes('유효한 데이터를 생성하지 못했습니다') || msg.includes('incomplete inference')) {
            return {
                title: '🧩 추론 분석 실패 (Inference Failed)',
                message: '에이전트가 단계를 분석하는 중 유효한 응답을 생성하지 못했습니다.',
                action: '1. 성능이 더 좋은 모델로 변경\n2. 질문 내용을 더 상세하게 작성\n3. 다시 시도'
            };
        }

        if (msg.includes('timeout')) {
            return {
                title: '⏱️ 응답 시간 초과 (Timeout)',
                message: 'AI가 답변을 준비하는 데 너무 오래 걸리고 있습니다.',
                action: '설정에서 Timeout 시간을 늘리거나, 더 작은 범위로 질문해보세요.'
            };
        }

        if (msg.includes('model not found') || msg.includes('404')) {
            return {
                title: '🤖 모델 인식 불가 (Model Not Found)',
                message: '선택하신 모델을 시스템에서 찾을 수 없습니다.',
                action: '상단 드롭다운에서 다른 모델을 선택하거나 모델 이름을 확인해주세요.'
            };
        }

        return {
            title: '⚠️ 시스템 내부 오류',
            message: `작업 중 예상치 못한 문제가 발생했습니다.\n(Error: ${error.message || error})`,
            action: '1. 확장을 재시작하거나 로그를 확인해 주세요.\n2. 위 에러 메시지를 개발자에게 전달해 주세요.'
        };
    }
}
