export type CampaignType = 'popup' | 'banner' | 'modal' | 'toast';

export interface Campaign {
  id: string;
  name: string;
  type: CampaignType;
  isActive: boolean;
  rules: CampaignRule[];
  content: CampaignContent;
  startDate?: Date;
  endDate?: Date;
}

export interface CampaignRule {
  type: 'time_on_page' | 'scroll_depth' | 'exit_intent' | 'user_segment';
  value: number | string; // e.g., 30 (seconds), 50 (percent)
}

export interface CampaignContent {
  title?: string;
  body?: string;
  imageUrl?: string;
  ctaText?: string;
  ctaUrl?: string;
}

export interface MarketingService {
  getActiveCampaigns(context: UserContext): Promise<Campaign[]>;
  trackImpression(campaignId: string): void;
  trackClick(campaignId: string): void;
}

export interface UserContext {
  userId?: string;
  pageUrl: string;
  device: 'mobile' | 'desktop';
}
