"""Google Sheets에서 데이터 조회"""
from typing import Any

from .sheets_client import sheets_client
from .config import SPREADSHEET_ID


def fetch_comparison_data(
    sheet_name: str = "予実出力",
    spreadsheet_id: str = None
) -> list[list[Any]]:
    """예실 비교 데이터 조회

    Args:
        sheet_name: 시트 이름
        spreadsheet_id: 스프레드시트 ID

    Returns:
        2차원 배열 형태의 원시 데이터
    """
    if spreadsheet_id is None:
        spreadsheet_id = SPREADSHEET_ID

    range_name = f"{sheet_name}!A1:AZ500"

    return sheets_client.get_sheet_data(
        range_name=range_name,
        spreadsheet_id=spreadsheet_id
    )


def fetch_pl_data(
    sheet_name: str = "損益計算書",
    spreadsheet_id: str = None
) -> list[list[Any]]:
    """손익계산서 데이터 조회"""
    if spreadsheet_id is None:
        spreadsheet_id = SPREADSHEET_ID

    range_name = f"{sheet_name}!A1:AZ200"

    return sheets_client.get_sheet_data(
        range_name=range_name,
        spreadsheet_id=spreadsheet_id
    )


def fetch_cashflow_data(
    sheet_name: str = "キャッシュフロー",
    spreadsheet_id: str = None
) -> list[list[Any]]:
    """캐시플로우 데이터 조회"""
    if spreadsheet_id is None:
        spreadsheet_id = SPREADSHEET_ID

    range_name = f"{sheet_name}!A1:AZ100"

    return sheets_client.get_sheet_data(
        range_name=range_name,
        spreadsheet_id=spreadsheet_id
    )


def fetch_summary_data(
    sheet_name: str = "サマリ",
    spreadsheet_id: str = None
) -> list[list[Any]]:
    """요약 데이터 조회"""
    if spreadsheet_id is None:
        spreadsheet_id = SPREADSHEET_ID

    range_name = f"{sheet_name}!A1:Z50"

    return sheets_client.get_sheet_data(
        range_name=range_name,
        spreadsheet_id=spreadsheet_id
    )


def get_available_sheets(spreadsheet_id: str = None) -> list[dict]:
    """사용 가능한 시트 목록 조회"""
    return sheets_client.get_all_sheets(spreadsheet_id)
