import { ApiProperty } from '@nestjs/swagger';

/**
 * Insight Object
 * كائن الرؤية
 * 
 * Represents a specific finding or recommendation based on data.
 * يمثل اكتشافاً معيناً أو توصية بناءً على البيانات.
 */
export class Insight {
  @ApiProperty({ example: 'warning' })
  type: 'info' | 'warning' | 'success';

  @ApiProperty({ example: 'LOW_CTR' })
  code: string;

  @ApiProperty({ example: 'Campaign has a low Click-Through Rate (CTR).' })
  message: string;

  @ApiProperty({ example: 'Try testing new ad headlines and vibrant visuals.', description: 'Actionable advice | نصيحة عملية' })
  recommendation?: string;
}

/**
 * Analysis Result
 * نتيجة التحليل
 * 
 * The final output of our analytics engine.
 * المخرج النهائي لمحرك التحليلات الخاص بنا.
 */
export class AnalysisResult {
  @ApiProperty()
  campaignId: string;

  @ApiProperty()
  campaignName: string;

  @ApiProperty()
  metrics: {
    impressions: number;
    clicks: number;
    spend: number;
    ctr: number;
    cpc: number;
    cpm: number;
  };

  @ApiProperty({ type: [Insight] })
  insights: Insight[];

  @ApiProperty({ example: 'AI generated advice...', description: 'Advanced AI insights | رؤى متقدمة من الذكاء الاصطناعي' })
  aiRecommendation?: string;
}
