export interface RevenueAnalytics {
  total_revenue: string;
  by_event: { event_id: number; title: string; revenue: string }[];
  daily: { date: string; revenue: string }[];
}

export interface TicketSalesAnalytics {
  total_sold: number;
  by_event: { event_id: number; title: string; sold: number }[];
  by_ticket_type: {
    ticket_type_id: number;
    name: string;
    event_id: number;
    event_title: string;
    sold: number;
  }[];
}

export interface AttendanceAnalytics {
  overall_rate: number;
  by_event: {
    event_id: number;
    title: string;
    valid_tickets: number;
    checked_in: number;
    rate: number;
  }[];
}

/** FR-097: per-event performance, merged from Revenue/Ticket Sales/Attendance. */
export type EventPerformanceAnalytics = {
  event_id: number;
  title: string;
  revenue: string;
  tickets_sold: number;
  attendance_rate: number;
}[];

/** FR-098: participant headcount. */
export interface ParticipantAnalytics {
  total_participants: number;
  by_event: { event_id: number; title: string; participants: number }[];
  daily: { date: string; total: number }[];
}

/** FR-099: per-category stats. */
export type CategoryAnalytics = {
  category_id: number;
  name: string;
  event_count: number;
  revenue: string;
  tickets_sold: number;
}[];

/** FR-100: promo usage. */
export type PromoAnalytics = {
  promo_id: number;
  code: string;
  event_id: number;
  event_title: string | null;
  discount_percentage: string;
  quota: number | null;
  usage_count: number;
  total_discount: string;
}[];

/** FR-101: voucher usage. */
export type VoucherAnalytics = {
  voucher_id: number;
  code: string;
  event_id: number;
  event_title: string | null;
  discount_amount: string;
  quota: number | null;
  usage_count: number;
  total_discount: string;
}[];
