export type QueueSignalPayload = {
  providerId: string;
  eventId: string;
  sportType: string;
  leagueName: string;
  homeTeam: string;
  awayTeam: string;
  eventStartTime: string;
  marketType: string;
  selection: string;
  forecast: string | null;
  lineValue: number | null;
  odds: number;
  signalTime: string;
  status: "pending" | "won" | "lost" | "void" | "unpublished";
  sourceType: "provider" | "manual";
  comment: string | null;
  published: boolean;
  dedupeKey: string;
  rawPayload: Record<string, unknown> | null;
};

export type SignalsSnapshotJobData = {
  providerId: string;
  items: QueueSignalPayload[];
  meta?: Record<string, unknown>;
  syncEligibleBotKeys: string[];
};

export type PushSignalJobData = {
  type: "signal";
  signalId: string;
  force?: boolean;
};

export type PushBroadcastJobData = {
  type: "broadcast";
  title: string;
  body: string;
  url?: string;
  tag?: string;
  renotify?: boolean;
};

export type PushJobData = PushSignalJobData | PushBroadcastJobData;
