"""
Check JSON Source Records

This script checks how many records are actually in the JSON source.
"""

from services.json_loader import JSONLoader
from services.settings_service import SettingsService

def check_json_source():
    """Check JSON source records."""
    print("=" * 80)
    print("JSON Source Check")
    print("=" * 80)
    
    # Initialize services
    settings_service = SettingsService()
    config = settings_service.config
    
    loader = JSONLoader(
        config['json_sources']['base_path'],
        config['collections']
    )
    
    # Load records from ba_glf_2018
    collection_name = 'odf_rankings'
    source_name = 'ba_glf_2018'
    
    print(f"\nLoading {collection_name} from {source_name}...")
    
    records = loader.load_collection_from_source(collection_name, source_name)
    
    print(f"\nTotal records loaded: {len(records)}")
    
    if records:
        print("\nSample records (first 5):")
        for i, record in enumerate(records[:5], 1):
            comp_code = record.get('competitor.code', 'N/A')
            rank = record.get('rank', 'N/A')
            print(f"  {i}. competitor.code: {comp_code}, rank: {rank}")
        
        # Check for unique codes
        codes = [r.get('competitor.code') for r in records if r.get('competitor.code')]
        unique_codes = set(codes)
        print(f"\nUnique competitor codes: {len(unique_codes)}")
        print(f"Total records with codes: {len(codes)}")
        
        if len(codes) != len(unique_codes):
            print(f"⚠️  Found duplicates in JSON: {len(codes) - len(unique_codes)}")
    
    print("\n" + "=" * 80)

if __name__ == "__main__":
    try:
        check_json_source()
    except Exception as e:
        print(f"\n❌ Error: {e}")
        import traceback
        traceback.print_exc()
