#!/usr/bin/env python3

import os
import json
from google.oauth2 import service_account
from googleapiclient.discovery import build
from dotenv import load_dotenv

def get_sheet_columns():
    """
    讀取 Google Sheets 中「加班時數總表」工作表的欄位
    """
    # 載入環境變數
    load_dotenv()
    
    # 試算表 ID 和工作表名稱
    SPREADSHEET_ID = '1FFRR9i5wFSNjNqLjVN7xWI74qV7SqjJncQHyEyzmtAA'
    SHEET_NAME = '加班時數總表'
    
    try:
        # 從 JSON 檔案讀取服務帳號憑證
        creds = service_account.Credentials.from_service_account_file(
            'service_account_key.json',
            scopes=['https://www.googleapis.com/auth/spreadsheets.readonly']
        )
        
    except FileNotFoundError:
        print("錯誤：找不到 service_account_key.json 檔案")
        print("請確認檔案存在於當前目錄")
        return
    except Exception as e:
        print(f"憑證設定錯誤：{e}")
        return
    
    # 建立 Sheets API 服務
    service = build('sheets', 'v4', credentials=creds)
    sheet = service.spreadsheets()
    
    try:
        # 讀取第一行（欄位標題）
        range_name = f'{SHEET_NAME}!1:1'
        result = sheet.values().get(
            spreadsheetId=SPREADSHEET_ID,
            range=range_name
        ).execute()
        
        values = result.get('values', [])
        
        if not values:
            print('沒有找到資料')
            return
        
        # 顯示欄位
        columns = values[0]
        print(f"「{SHEET_NAME}」工作表包含以下欄位：")
        print("=" * 50)
        for i, column in enumerate(columns, 1):
            print(f"{i:2d}. {column}")
        
        print(f"\n總共有 {len(columns)} 個欄位")
        
    except Exception as e:
        print(f"讀取試算表時發生錯誤：{e}")
        print("請確認：")
        print("1. 試算表 ID 正確")
        print("2. 工作表名稱「加班時數總表」存在")
        print("3. 服務帳號有讀取權限")

if __name__ == '__main__':
    get_sheet_columns()