import sys
from pathlib import Path

# 프로젝트 루트와 app 디렉토리를 path에 추가
current_dir = Path(__file__).parent
project_root = current_dir.parent
app_dir = project_root / "app"
sys.path.append(str(app_dir))

from services.report_service import ReportService
import json

def test_samples():
    print("=== Report Service Samples Test ===")
    service = ReportService()
    
    samples = [
        {
            "id": "샘플4",
            "title": "1호선 38편성 반대편 출입문 옷 끼임으로 열차 지연",
            "content": """▶ 02/13 17:31 문자 수신내용 : 지금 연산역 가는 지하철 무슨 민원인가요
문자 답신내용 : 이용하고 계신 차량의 호선과 출입문 주변에 기록된 편성, 호차 확인 부탁드립니다. 아울러 열차 내 방송이 송출되었던 건가요?
▶ 02/13 17:34 문자 수신내용 : 민언때문에 열차지연으로 양정, 시청에서 정차했습니다
처리결과)) 02/13 17:34 1운행관제 아웃콜 시 최찬호 관제사 받음. 상기 내용 전달 시 반대편 출입문에 옷이 끼어 조금 늦어졌다 함. 열차번호 8906에 38편성이라 함.
문자 답신내용 : 열차 이용에 불편을 드려 죄송합니다. 반대편 출입문에 옷이 끼인 고객이 있어 조치하는 과정에서 조금 오래 정차하였다고 합니다. 안전하고 편안한 열차 이용을 위해 더욱 노력하겠습니다. 건강한 하루 보내세요.
확인내용)) 02/13 17:36 1운행관제 아웃콜. 직원(이름 말 안 함)에게 지연 여부 탐색 시 약 2분 지연되었다 함.
※ 2026. 02. 13. 17:26 38편성 7호차 출입문에 코트 끼인 다른 고객 신고 참고"""
        },
        {
            "id": "샘플5",
            "title": "1호선 10편성 부산대역에서 출입문 끼임",
            "content": """▶ 02/13 16:48 문자 수신내용 : (제목없음)부산대역에서 정차할 때 왜 자꾸 확인 안해보고 문 닫나요
방금도 3명이나 끼일 뻔 했고 방금도 끼어서 아파 죽겠습니다
저번달에도 그래서 흰패딩에 다 묻고 세탁비 청구하려다가 참았습니다
제가 늦장부리는 것도 아니고 부산대역은 유동인구가 많아서 사람들도 많이 내리고 어르신들도 많이 내리시는데 내리시는 고 기다렸다가 탈려면 문 닫히네요 제발 잘 좀 보라고 해주세요
내리는 분들 다 밀고 타야될까요?
진짜 저 어디서든 댓글쓰거나 컴플레인 안 가는데 참다참다가 보냅니다 이러다 다음엔 크게 다칠 것 같습니다 제발좀요
문자 답신내용 : 열차 이용에 불편을 드려 죄송합니다. 혹시 해당 열차 지금 탑승 중이십니까? 출입문 주변에 기록된 편성, 호차 확인 부탁드립니다.
▶ 02/13 16:50 문자 수신내용 : 10편성 7호찹니다
처리결과1)) 02/13 16:50 1운행관제 아웃콜 시 최찬희 관제사 받음. 상기 내용 전달.
문자 답신내용 : 열차 이용에 불편을 드려 대단히 죄송합니다. 주의 운전할 수 있도록 해당 부서로 16시 50분에 전달하였습니다. 아울러 출입문에 끼이셨다면 부산대역 051-678-6128 로 전화하셔서 사고 접수 부탁드립니다. 보상의 경우 공사의 귀책사유가 있는 경우에 한해 가능한 점 양해 부탁드립니다. 안전한 열차 운행을 위해 더욱 노력하겠습니다. 건강한 하루 보내세요.
처리결과2)) 02/13 17:14 부산대역 아웃콜 시 여성수 과장 받음. 상기 내용 및 고객 역으로 연락 갈 수 있음 전달 후 고객 전화번호 참고 전달."""
        },
        {
            "id": "샘플6",
            "title": "1호선 39편성 4호차 차량고장",
            "content": """▶ 2/13 11:28 전화 수신내용 : 39편성 4호차 라면서 신평역이라고 함
지금 1호선 2116, 39편성 열차가 차량 고장으로 지연되고 있다 함. 앞, 뒤 열차들도 함께 지연되고 있다며 참고 안내 부탁한다 함."""
        },
        {
            "id": "입고테스트",
            "title": "1호선 1301열차 관련 민원 (휴일)",
            "content": "02/15 22:50 휴일에 운행하는 1301열차 입고 시간 확인용."
        }
    ]

    for sample in samples:
        print(f"\n--- Testing {sample['id']} ---")
        parsed = service._parse_voc_info(sample['title'], sample['content'])
        print(f"제목: {sample['title'][:40]}...")
        print(f"호선: {parsed['line_str']}")
        print(f"편성: {parsed['set_str']}")
        print(f"호차: {parsed['car_str']}")
        print(f"열차번호: {parsed['train_str']}")
        print(f"방향: {parsed['train_details']['direction']}")
        print(f"종별: {parsed['train_details']['type']}")
        
        if parsed.get('train_candidates'):
            print(f"후보군: {[c['train_number'] for c in parsed['train_candidates']]}")
            
        remarks = service._get_schedule_remarks(
            parsed['train_details'], 
            diagram_type=parsed.get('diagram_type'),
            candidates=parsed.get('train_candidates')
        )
        print(f"비고:\n{remarks}")

if __name__ == "__main__":
    test_samples()
