"""
Check ODF Medallists Structure
"""

from services.mongo import MongoService
from services.json_flattener import JSONFlattener
import json

def check_medallists():
    """Check the structure of odf_medallists."""
    print("=" * 80)
    print("ODF Medallists Structure Check")
    print("=" * 80)
    
    mongo_service = MongoService()
    if not mongo_service.connect():
        print("❌ Failed to connect")
        return
    
    collection = mongo_service.db['odf_medallists']
    doc = collection.find_one()
    
    if not doc:
        print("❌ No documents found")
        return
    
    print("\nTop-level fields:")
    for field in sorted(doc.keys()):
        if field != '_id':
            print(f"  - {field}: {type(doc[field]).__name__}")
    
    print("\nODF Body fields:")
    if 'odf_body' in doc:
        for key in sorted(doc['odf_body'].keys()):
            print(f"  - odf_body.{key}")
    
    print("\nFlattened fields with 'code' or 'medal':")
    flattener = JSONFlattener()
    flat = flattener.flatten(doc)
    
    for field in sorted(flat.keys()):
        if 'code' in field.lower() or 'medal' in field.lower():
            print(f"  - {field}: {flat[field]}")
    
    print("\nSample document:")
    del doc['_id']
    print(json.dumps(doc, indent=2, default=str)[:1000])

if __name__ == "__main__":
    check_medallists()
