/**
 * News Scout Pipeline — Shared Types
 */

export interface ScoutCandidate {
  guid: string;
  title: string;
  url: string;
  source: string;
  sourceDisplay: string;
  sport: string;
  description: string;
  publishedAt: Date;
  sourceType: 'rss' | 'twitter' | 'reddit' | 'gnews';
  engagementScore: number;
  customHeadline?: string;
  customSummary?: string;
  celebrityNames?: string[];
  imageUrl?: string;
  isCurated: boolean;
  isBreaking: boolean;
  isFeatured: boolean;
}

export interface ScoutRunCounters {
  rssFound: number;
  rssUpserted: number;
  twitterFound: number;
  twitterUpserted: number;
  gnewsFound: number;
  gnewsUpserted: number;
  redditFound: number;
  redditUpserted: number;
  itemsScored: number;
  itemsCurated: number;
  graphicsGenerated: number;
}

export interface FeedConfig {
  url: string;
  source: string;
  sourceDisplay: string;
  sport: string | 'general';
}

export interface TwitterSearchQuery {
  query: string;
  label: string;
  sport: string;
  minEngagement: number;
}

export interface RedditSubredditConfig {
  subreddit: string;
  sport: string;
  minUpvotes: number;
}

export interface GoogleNewsQueryConfig {
  query: string;
  sport: string;
  label: string;
}
