#!/usr/bin/env python3
"""Verify production database schema."""

import os
from sqlalchemy import create_engine, inspect

def verify_schema():
    """Verify the production database schema."""
    database_url = os.environ.get('DATABASE_URL', '')
    
    if not database_url:
        print("ERROR: DATABASE_URL not set")
        return
    
    engine = create_engine(database_url)
    inspector = inspect(engine)
    
    # Get all tables
    tables = inspector.get_table_names()
    
    print(f"Total tables: {len(tables)}")
    print(f"Has 'users' table: {'users' in tables}")
    print("\nAll tables (sorted):")
    for table in sorted(tables):
        print(f"  - {table}")
    
    # Check specific tables we care about
    expected_tables = [
        'users', 'jobs', 'contracts', 'messages', 
        'notifications', 'ratings', 'disputes',
        'bookings', 'availability', 'time_tracking_entries'
    ]
    
    print("\nExpected tables check:")
    for table in expected_tables:
        status = "✅" if table in tables else "❌"
        print(f"  {status} {table}")
    
    # Check contracts table columns
    if 'contracts' in tables:
        columns = [col['name'] for col in inspector.get_columns('contracts')]
        print(f"\nContracts table has {len(columns)} columns")
        rating_columns = ['contractor_rated', 'worker_rated', 'mutual_rating_completed_date']
        print("Rating columns in contracts:")
        for col in rating_columns:
            status = "✅" if col in columns else "❌"
            print(f"  {status} {col}")

if __name__ == "__main__":
    verify_schema()
