#!/usr/bin/env python3
"""
Batch verification processor - upgrades facilities systematically
"""

import csv
import json
import sys
from datetime import datetime

def load_csv():
    """Load current CSV data"""
    facilities = []
    with open('verified-scored-facilities.csv', 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for row in reader:
            facilities.append(row)
    return facilities

def save_csv(facilities):
    """Save updated CSV with backup"""
    # Create backup
    timestamp = datetime.now().strftime('%Y%m%d-%H%M%S')
    backup_file = f'verified-scored-facilities-BACKUP-{timestamp}.csv'
    
    with open('verified-scored-facilities.csv', 'r') as f:
        with open(backup_file, 'w') as bf:
            bf.write(f.read())
    
    # Save updated data
    if facilities:
        fieldnames = facilities[0].keys()
        with open('verified-scored-facilities.csv', 'w', encoding='utf-8', newline='') as f:
            writer = csv.DictWriter(f, fieldnames=fieldnames)
            writer.writeheader()
            writer.writerows(facilities)
        
        print(f"✓ Saved {len(facilities)} facilities")
        print(f"✓ Backup: {backup_file}")
    
    return backup_file

def get_facilities_by_status(facilities, status):
    """Get facilities by confidence level"""
    return [f for f in facilities if f['Confidence Level'] == status]

def get_facility_index(facilities, company, region):
    """Find facility index by company and region"""
    for i, f in enumerate(facilities):
        if f['Company'] == company and f['Region'] == region:
            return i
    return -1

def upgrade_facility(facilities, company, region, updates):
    """
    Upgrade a facility with new verified information
    
    updates = {
        'Total Rooms': value,
        'Square Footage': value,
        'Primary Produce': value,
        'Premium Varieties': value,
        'Organic': value,
        'CA/MA': value,
        'Verification Source': value,
        'Confidence Level': 'Verified',
        'Notes': value
    }
    """
    idx = get_facility_index(facilities, company, region)
    if idx == -1:
        print(f"✗ Facility not found: {company} - {region}")
        return False
    
    facility = facilities[idx]
    
    # Update fields
    for key, value in updates.items():
        if value is not None:
            facility[key] = value
    
    print(f"✓ Upgraded: {company} ({region})")
    print(f"  Status: {updates.get('Confidence Level', 'N/A')}")
    
    return True

def print_facility(facility):
    """Print facility details for verification"""
    print(f"\n{'='*80}")
    print(f"Company: {facility['Company']}")
    print(f"Region: {facility['Region']}")
    print(f"Website: {facility.get('Website', 'N/A')}")
    print(f"Size: {facility.get('Size Classification', 'N/A')}")
    print(f"Rooms: {facility.get('Total Rooms', 'Unknown')}")
    print(f"Sq Ft: {facility.get('Square Footage', 'Unknown')}")
    print(f"Produce: {facility.get('Primary Produce', 'Unknown')}")
    print(f"Status: {facility.get('Confidence Level', 'Unknown')}")
    print(f"Source: {facility.get('Verification Source', 'N/A')}")
    print(f"Notes: {facility.get('Notes', 'N/A')}")
    print(f"{'='*80}\n")

if __name__ == '__main__':
    facilities = load_csv()
    confirmed = get_facilities_by_status(facilities, 'Confirmed')
    estimated = get_facilities_by_status(facilities, 'Estimated')
    
    print(f"Loaded {len(facilities)} total facilities")
    print(f"- Confirmed: {len(confirmed)}")
    print(f"- Estimated: {len(estimated)}")
    print()
    
    # Load work queue
    with open('work-queue-confirmed.json', 'r') as f:
        confirmed_queue = json.load(f)
    
    # Example: Show Central Valley facilities to verify
    if 'Central Valley' in confirmed_queue:
        print(f"\n=== CENTRAL VALLEY FACILITIES TO VERIFY ===")
        for i, facility in enumerate(confirmed_queue['Central Valley'][:10], 1):
            print(f"{i}. {facility['Company']} - {facility.get('Website', 'No website')}")
