import { apiFetch } from "@/lib/api/server";
import type {
  AttendanceAnalytics,
  CategoryAnalytics,
  EventPerformanceAnalytics,
  ParticipantAnalytics,
  PromoAnalytics,
  RevenueAnalytics,
  TicketSalesAnalytics,
  VoucherAnalytics,
} from "@/types/analytics";

/** GET /organizer/analytics/revenue — FR-095, scoped to own events (BR-029). */
export async function getOrganizerRevenueAnalytics() {
  return apiFetch<{ data: RevenueAnalytics }>("/organizer/analytics/revenue", { auth: true });
}

/** GET /organizer/analytics/ticket-sales — FR-096, scoped to own events (BR-029). */
export async function getOrganizerTicketSalesAnalytics() {
  return apiFetch<{ data: TicketSalesAnalytics }>("/organizer/analytics/ticket-sales", { auth: true });
}

/** GET /organizer/analytics/attendance — FR-102, scoped to own events (BR-029). */
export async function getOrganizerAttendanceAnalytics() {
  return apiFetch<{ data: AttendanceAnalytics }>("/organizer/analytics/attendance", { auth: true });
}

/** GET /organizer/analytics/events — FR-097, scoped to own events (BR-029). */
export async function getOrganizerEventPerformanceAnalytics() {
  return apiFetch<{ data: EventPerformanceAnalytics }>("/organizer/analytics/events", { auth: true });
}

/** GET /organizer/analytics/participants — FR-098, scoped to own events (BR-029). */
export async function getOrganizerParticipantAnalytics() {
  return apiFetch<{ data: ParticipantAnalytics }>("/organizer/analytics/participants", { auth: true });
}

/** GET /organizer/analytics/categories — FR-099, scoped to own events (BR-029). */
export async function getOrganizerCategoryAnalytics() {
  return apiFetch<{ data: CategoryAnalytics }>("/organizer/analytics/categories", { auth: true });
}

/** GET /organizer/analytics/promos — FR-100, scoped to own events (BR-029). */
export async function getOrganizerPromoAnalytics() {
  return apiFetch<{ data: PromoAnalytics }>("/organizer/analytics/promos", { auth: true });
}

/** GET /organizer/analytics/vouchers — FR-101, scoped to own events (BR-029). */
export async function getOrganizerVoucherAnalytics() {
  return apiFetch<{ data: VoucherAnalytics }>("/organizer/analytics/vouchers", { auth: true });
}
