import { ErrorReporter } from '../../interfaces/ErrorReporter';
import { getGlobalErrorHandler } from '../GlobalErrorHandler';

export class ConsoleErrorReporter implements ErrorReporter {
  report(error: Error, context?: unknown): void {
    const timestamp = new Date().toISOString();
    
    // Use enhanced global handler if available
    try {
      const globalHandler = getGlobalErrorHandler();
      const enhancedContext: Record<string, unknown> = {
        source: 'legacy_reporter',
        timestamp,
      };
      if (typeof context === 'object' && context !== null) {
        Object.assign(enhancedContext, context);
      }
      globalHandler.report(error, enhancedContext);
    } catch {
      // Fallback to basic logging if global handler not available
      console.error(`[${timestamp}] Error reported:`, error.message, { error, context });
      
      // Also log to console with enhanced format
      if (process.env.NODE_ENV === 'development') {
        console.groupCollapsed(`%c[LEGACY ERROR] ${error.name}: ${error.message}`, 'color: #ff6600; font-weight: bold;');
        console.log('Error:', error);
        console.log('Context:', context);
        console.log('Stack:', error.stack);
        console.groupEnd();
      }
    }
  }
}