#!/usr/bin/env python3
"""
GemEgg 스프레드시트 분석 스크립트
"""
import json
import os
from pathlib import Path

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

# 프로젝트 루트 경로
PROJECT_ROOT = Path(__file__).parent.parent.parent

# 서비스 계정 키 경로
KEY_PATH = PROJECT_ROOT / "service-account-key.json"

# 스프레드시트 ID
SPREADSHEET_ID = "17AUAHQQB0nZVje9QXtdISEPtMoa8RXKkuCk4R5iHbd4"

def get_sheets_service():
    """Google Sheets API 서비스 객체 생성"""
    credentials = service_account.Credentials.from_service_account_file(
        KEY_PATH,
        scopes=["https://www.googleapis.com/auth/spreadsheets"]
    )
    return build("sheets", "v4", credentials=credentials)

def analyze_spreadsheet():
    """스프레드시트 구조 분석"""
    service = get_sheets_service()

    # 메타데이터 조회
    metadata = service.spreadsheets().get(
        spreadsheetId=SPREADSHEET_ID
    ).execute()

    print("=== Spreadsheet Info ===")
    print(f"Title: {metadata['properties']['title']}")
    print("\n=== Sheets ===")

    for sheet in metadata["sheets"]:
        title = sheet["properties"]["title"]
        sheet_id = sheet["properties"]["sheetId"]
        print(f"\n--- Sheet: {title} (gid: {sheet_id}) ---")

        # 데이터 조회
        try:
            result = service.spreadsheets().values().get(
                spreadsheetId=SPREADSHEET_ID,
                range=f"'{title}'!A1:Z20"
            ).execute()

            rows = result.get("values", [])
            print(f"Rows: {len(rows)}")

            # 미리보기
            for i, row in enumerate(rows[:10]):
                if any(row):
                    print(f"  {i+1}: {row[:8]}{'...' if len(row) > 8 else ''}")
        except Exception as e:
            print(f"Error: {e}")

if __name__ == "__main__":
    analyze_spreadsheet()
