import os
import json
from dotenv import load_dotenv
from notion_client import Client

# Load environment variables
load_dotenv()

# Initialize Notion client
client = Client(auth=os.getenv('NOTION_TOKEN'))

def debug_page_structure(page_id: str):
    """Debug function to print out the full page structure"""
    try:
        page = client.pages.retrieve(page_id)
        print("=" * 80)
        print("FULL PAGE RESPONSE:")
        print("=" * 80)
        print(json.dumps(page, indent=2, default=str))
        print("=" * 80)
        
        print("\nPROPERTIES SECTION:")
        print("=" * 40)
        properties = page.get('properties', {})
        for key, value in properties.items():
            print(f"{key}: {json.dumps(value, indent=2, default=str)}")
        print("=" * 40)
        
        # Try different ways to extract the title
        print("\nTITLE EXTRACTION ATTEMPTS:")
        print("-" * 40)
        
        # Method 1: Look for 'title' property
        if 'title' in properties:
            title_property = properties['title']
            print(f"Found 'title' property: {title_property}")
            if title_property.get('title') and len(title_property['title']) > 0:
                title_text = title_property['title'][0].get('plain_text', 'No plain_text')
                print(f"Title from 'title' property: '{title_text}'")
        
        # Method 2: Look for 'Name' property
        if 'Name' in properties:
            name_property = properties['Name']
            print(f"Found 'Name' property: {name_property}")
            if name_property.get('title') and len(name_property['title']) > 0:
                name_text = name_property['title'][0].get('plain_text', 'No plain_text')
                print(f"Title from 'Name' property: '{name_text}'")
        
        # Method 3: Look for any property with type 'title'
        for prop_name, prop_value in properties.items():
            if prop_value.get('type') == 'title':
                print(f"Found property '{prop_name}' with type 'title': {prop_value}")
                if prop_value.get('title') and len(prop_value['title']) > 0:
                    title_text = prop_value['title'][0].get('plain_text', 'No plain_text')
                    print(f"Title from '{prop_name}' property: '{title_text}'")
        
        print("-" * 40)
        
    except Exception as e:
        print(f"Error retrieving page: {str(e)}")

if __name__ == '__main__':
    page_id = '2725bd136a8480a69301d6e70171cdad'
    debug_page_structure(page_id)
