"""
Create Google Sheet using Sheets API v4 directly (not gspread).
This avoids Drive quota issues by creating the spreadsheet via Sheets API.
"""

import json
import sys
from pathlib import Path

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

CREDENTIALS_FILE = Path(__file__).parent / "google_credentials.json"
SCOPES = [
    "https://www.googleapis.com/auth/spreadsheets",
    "https://www.googleapis.com/auth/drive",
]

TEST_QUESTIONS = [
    "Tìm cho mình chân váy màu đỏ",
    "Tìm quần màu đỏ",
    "Tìm áo polo nam",
    "Tìm áo khoác nữ mùa đông",
    "Mình muốn mua đồ đi biển, gợi ý cho mình",
    "Cho mình xem áo sơ mi đi làm",
    "Gợi ý outfit đi dự tiệc",
    "Áo size S giá dưới 500k",
    "Có khuyến mãi gì không?",
    "Cách đặt hàng online",
    "Cửa hàng nào gần nhất ở Hà Nội",
    "Xin chào",
    "Cảm ơn bạn",
    "Tìm sản phẩm abc123 không tồn tại",
]


def main():
    creds = Credentials.from_service_account_file(str(CREDENTIALS_FILE), scopes=SCOPES)

    sheets_service = build("sheets", "v4", credentials=creds)
    drive_service = build("drive", "v3", credentials=creds)

    # Create spreadsheet via Sheets API
    spreadsheet_body = {
        "properties": {"title": "Canifa Chatbot Test Results"},
        "sheets": [{
            "properties": {"title": "Test Questions"},
        }]
    }

    print("📝 Creating spreadsheet via Sheets API...")
    result = sheets_service.spreadsheets().create(body=spreadsheet_body).execute()
    sheet_id = result["spreadsheetId"]
    sheet_url = result["spreadsheetUrl"]
    print(f"✅ Created! ID: {sheet_id}")
    print(f"📊 URL: {sheet_url}")

    # Write headers + data
    headers = ["STT", "Câu hỏi test", "Câu trả lời", "Thời gian (ms)", "Trạng thái"]
    values = [headers]
    for i, q in enumerate(TEST_QUESTIONS, 1):
        values.append([i, q, "", "", "⏳ Đang chờ..."])

    sheets_service.spreadsheets().values().update(
        spreadsheetId=sheet_id,
        range="Test Questions!A1:E15",
        valueInputOption="RAW",
        body={"values": values}
    ).execute()
    print(f"✅ Wrote {len(TEST_QUESTIONS)} questions")

    # Share with anyone (link)
    try:
        drive_service.permissions().create(
            fileId=sheet_id,
            body={"type": "anyone", "role": "writer"},
            fields="id"
        ).execute()
        print("✅ Shared as 'anyone with link can edit'")
    except Exception as e:
        print(f"⚠️ Could not share: {e}")

    # Save sheet info
    info = {"sheet_url": sheet_url, "sheet_id": sheet_id}
    info_path = Path(__file__).parent / "sheet_info.json"
    info_path.write_text(json.dumps(info, indent=2))
    print(f"💾 Saved to {info_path}")


if __name__ == "__main__":
    main()
