// Intelligence data models and schemas for marketing campaigns // This is a large file with many model classes - providing simplified version using System; using System.Collections.Generic; namespace AIBrain.Services.SeederApi { public class AmazonProductRecommendation { public string Asin { get; set; } public string Title { get; set; } public decimal Price { get; set; } public double Rating { get; set; } } public class CampaignMetrics { public int Impressions { get; set; } public int Clicks { get; set; } public int Conversions { get; set; } public decimal Revenue { get; set; } public double Roi { get; set; } } public class MarketingCampaign { public string Id { get; set; } public string Name { get; set; } public string Channel { get; set; } public string Audience { get; set; } public string Objective { get; set; } public decimal Budget { get; set; } public CampaignMetrics Metrics { get; set; } public DateTime StartDate { get; set; } public DateTime? EndDate { get; set; } } public class StripeMonetizationPlan { public string ProductName { get; set; } public decimal Price { get; set; } public string Interval { get; set; } public List Features { get; set; } } public class StatisticalReasoningSummary { public double MeanRoi { get; set; } public double StdRoi { get; set; } public double ConfidenceLevel { get; set; } public int SampleSize { get; set; } } public class MarketingIntelligenceEngine { public List Campaigns { get; set; } public Dictionary Aggregates { get; set; } public StatisticalReasoningSummary Statistics { get; set; } public MarketingIntelligenceEngine() { Campaigns = new List(); Aggregates = new Dictionary(); Statistics = new StatisticalReasoningSummary(); } public void AddCampaign(MarketingCampaign campaign) { Campaigns.Add(campaign); } public CampaignMetrics GetAggregateMetrics() { var total = new CampaignMetrics(); foreach (var campaign in Campaigns) { if (campaign.Metrics != null) { total.Impressions += campaign.Metrics.Impressions; total.Clicks += campaign.Metrics.Clicks; total.Conversions += campaign.Metrics.Conversions; total.Revenue += campaign.Metrics.Revenue; } } return total; } } }