#!/usr/bin/env python3
from app_complete import app, db
from models import Case, User, CaseDocument
import sys

with app.app_context():
    print("\n=== DEBUGGING CASES ===\n")
    
    # Check all cases in database
    cases = Case.query.all()
    print(f"Total cases in database: {len(cases)}")
    
    for case in cases:
        print(f"\nCase ID: {case.id}")
        print(f"  Case Number: {case.case_number}")
        print(f"  Case Name: {case.case_name}")
        print(f"  Company ID: {case.company_id}")
        print(f"  Created By: {case.created_by}")
        print(f"  Status: {case.status}")
        print(f"  Created At: {case.created_at}")
        
        # Check documents
        documents = CaseDocument.query.filter_by(case_id=case.id).all()
        print(f"  Documents: {len(documents)}")
        
    # Check if there's a user filter issue
    if len(sys.argv) > 1:
        user_id = int(sys.argv[1])
        user = User.query.get(user_id)
        if user:
            print(f"\n=== Cases visible to user {user.username} ===")
            # Check what cases this user can see
            if user.is_admin():
                visible_cases = Case.query.all()
            elif user.is_company_admin():
                visible_cases = Case.query.filter_by(company_id=user.company_id).all()
            else:
                # Check how regular users see cases
                visible_cases = Case.query.filter_by(created_by=user.id).all()
            
            print(f"User can see {len(visible_cases)} cases")
