#!/usr/bin/env python3

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

def list_sheets_and_find_log():
    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)
        
        # 獲取所有工作表名稱
        spreadsheet_metadata = service.spreadsheets().get(spreadsheetId=SPREADSHEET_ID).execute()
        sheets = spreadsheet_metadata.get('sheets', [])
        
        print('='*60)
        print('試算表中的所有工作表：')
        print('='*60)
        for s in sheets:
            sheet_name = s['properties']['title']
            print(f'工作表: {sheet_name}')
        
        # 嘗試讀取可能的執行紀錄工作表
        possible_names = ['執行紀錄', 'log', 'Log', 'execution_log', '執行記錄', '加班費紀錄總表']
        
        for name in possible_names:
            try:
                print(f'\n嘗試讀取工作表: {name}')
                result = service.spreadsheets().values().get(
                    spreadsheetId=SPREADSHEET_ID,
                    range=f'{name}!A1:F5'
                ).execute()
                
                values = result.get('values', [])
                if values:
                    print(f'✅ 找到工作表: {name}')
                    print('前5行資料:')
                    for i, row in enumerate(values, 1):
                        filtered_row = []
                        for j, cell in enumerate(row):
                            if cell and str(cell).strip():
                                cell_content = str(cell).strip()
                                if len(cell_content) > 30:
                                    cell_content = cell_content[:30] + '...'
                                filtered_row.append(f'{chr(65+j)}:{cell_content}')
                        print(f'第{i}行: {filtered_row}')
                    
                    if i == 1:  # 如果是第一行（標題行）
                        print(f'標題欄位: {values[0]}')
                    break
            except Exception as e:
                print(f'❌ 無法讀取 {name}: {e}')
                continue
        
        # 如果沒找到執行紀錄工作表，建議創建
        print('\n如果沒有找到執行紀錄工作表，建議創建一個包含以下欄位的工作表：')
        print('欄位建議: 時間, 屬性, 標題, 範圍, 詳細資訊')
        
    except Exception as e:
        print(f'讀取試算表時發生錯誤：{e}')

if __name__ == '__main__':
    list_sheets_and_find_log()