import pandas as pd
from pathlib import Path

# 파일 경로 (프로젝트 구조에 맞게 수정)
FILE_PATH = Path("data/line1_sp_timetable.parquet")

def check_train_schedule(train_num, diag_type):
    print(f"\n[{diag_type} / {train_num}열차] 데이터 조회 시작...")
    
    if not FILE_PATH.exists():
        print(f"❌ 오류: 파일이 없습니다. ({FILE_PATH})")
        return

    try:
        # 데이터 로드
        df = pd.read_parquet(FILE_PATH)
        
        # 필터링
        condition = (df['diagram_type'] == diag_type) & (df['train_number'] == int(train_num))
        rows = df[condition].sort_values('seq')

        if rows.empty:
            print("❌ 데이터 없음: 해당 조건의 열차를 찾을 수 없습니다.")
            return

        print(f"✅ 데이터 발견: 총 {len(rows)}개 행")
        print(f"   다이아(Duty ID): {rows.iloc[0]['duty_id']}")
        
        # 1. 입고(depot_in) 행 찾기
        depot_in_rows = rows[rows['run_type'] == 'depot_in']
        
        if not depot_in_rows.empty:
            target = depot_in_rows.iloc[-1]
            print(f"\n▶ [입고 정보(depot_in)]")
            print(f"   - 시간: {target['time']}")
            print(f"   - 역명: {target['station']}")
            print(f"   - 기지: {target['depot']}")
        else:
            print("\n▶ [입고 정보 없음] (운행 종료 역 정보)")
            target = rows.iloc[-1]
            print(f"   - 시간: {target['time']}")
            print(f"   - 역명: {target['station']}")

        # 2. 전체 경로 출력 (간략)
        print("\n▶ [전체 운행 경로]")
        print(rows[['seq', 'station', 'time', 'run_type', 'track_no']].to_string(index=False))

    except Exception as e:
        print(f"❌ 에러 발생: {e}")

if __name__ == "__main__":
    # 사용자가 확인하고 싶은 조건: 주말(weekend) 2270열차
    check_train_schedule(train_num=2270, diag_type="weekend")