import pandas as pd
from pathlib import Path
from utils import load_json, setup_logging

logger = setup_logging()

def extract_quotes_for_aspects(codes, output_file='outputs/analysis/quotes_evidence.xlsx'):
    """Extract all quotes that support each code"""
    
    # Group by code
    code_quotes = {}
    
    for code_item in codes:
        code_name = code_item['code']
        quote = code_item.get('quote', '')
        file_id = code_item.get('file_id', '')
        context = code_item.get('context', '')
        category = code_item.get('category', '')
        
        if code_name not in code_quotes:
            code_quotes[code_name] = []
        
        code_quotes[code_name].append({
            'Code': code_name,
            'Category': category,
            'File_ID': file_id,
            'Quote': quote,
            'Context': context
        })
    
    # Flatten to DataFrame
    all_quotes = []
    for code_name, quotes_list in code_quotes.items():
        all_quotes.extend(quotes_list)
    
    df = pd.DataFrame(all_quotes)
    
    # Save to Excel
    df.to_excel(output_file, index=False)
    logger.info(f"Quotes extracted and saved to: {output_file}")
    
    return df

if __name__ == "__main__":
    codes = load_json('outputs/codes/all_codes_deductive.json')['codes']
    extract_quotes_for_aspects(codes)