#!/usr/bin/env python3

from google.oauth2 import service_account
from googleapiclient.discovery import build

def test_fixed_column_mapping():
    """
    測試修復後的欄位對應是否正確
    """
    SPREADSHEET_ID = '12dg8UjMTUh8SFPS-X4v83aIwNUEm5CYEKO3RNUW7QCA'
    
    try:
        creds = service_account.Credentials.from_service_account_file(
            'service_account_key.json',
            scopes=['https://www.googleapis.com/auth/spreadsheets.readonly']
        )
        
        service = build('sheets', 'v4', credentials=creds)
        
        # 測試7+月格式的欄位對應
        test_sheets = ['2025年10月', '2025年11月']
        
        print('測試修復後的欄位對應：')
        print('='*60)
        
        for sheet_name in test_sheets:
            print(f'\n檢查 {sheet_name}:')
            
            try:
                # 讀取前10行數據
                result = service.spreadsheets().values().get(
                    spreadsheetId=SPREADSHEET_ID,
                    range=f'{sheet_name}!A3:I10'
                ).execute()
                
                values = result.get('values', [])
                potential_records = 0
                
                for i, row in enumerate(values):
                    if len(row) > 1 and '2025' in str(row[1]):
                        # B欄是日期
                        date_str = row[1]
                        # H欄（索引7）是工時
                        work_hours = row[7] if len(row) > 7 else '未找到'
                        
                        try:
                            hours_float = float(work_hours) if work_hours != '未找到' else 0
                            if hours_float > 7.25:
                                potential_records += 1
                                print(f'  {date_str}: H欄工時={work_hours}小時 ✓ (>7.25)')
                            else:
                                print(f'  {date_str}: H欄工時={work_hours}小時 (≤7.25)')
                        except:
                            print(f'  {date_str}: H欄工時={work_hours} (無法解析)')
                
                print(f'  → 應產生加班記錄: {potential_records} 筆')
                
            except Exception as e:
                print(f'  ❌ 讀取失敗: {e}')
        
        print(f'\n修復摘要：')
        print(f'- 已修復：將 dayTotal 從 row[8] (I欄) 改為 row[7] (H欄)')
        print(f'- 已新增：詳細調試日誌追蹤每筆記錄的處理過程')
        print(f'- 已修復：7.25小時加班門檻的正確應用')
        print(f'\n建議：重新執行主程式並檢查執行日誌以確認修復效果')
        
    except Exception as e:
        print(f'執行失敗：{e}')

if __name__ == '__main__':
    test_fixed_column_mapping()