export const ANALYTICS_SWAGGER = {
  TAG: 'analytics',
  GET_KPIS: 'Admin: the 8 header KPIs for a reconciled session',
  GET_LIVE: 'Admin: live join/leave snapshot for a session currently in progress',
  GET_ATTENDEES: 'Admin: paginated per-seeker attendance table for a session',
  RECONCILE: 'Admin: pull the latest data from Zoom for a session and recompute analytics',
  MARK_ATTENDANCE: "Admin: mark a seeker's RM or Coordinator attendance for a session",
  GET_DASHBOARD:
    'Admin: post-session analytics dashboard (attendance journey, drop-off reasons, participation activity) — served from stored data',
  GET_FOLLOW_UPS: 'Admin: paginated "Seekers Who Need Attention" follow-up table for a completed session',
  GET_SEEKER_ANALYTICS:
    "Admin: one seeker's cross-session analytics rollup for a program (sessions attended, attendance %, learning duration, per-session breakdown)",
  GET_PROGRAM_OVERALL_ANALYTICS:
    'Admin: program-level Overall Analytics — Registered/Active/Avg attendance/Eligible-for-next-session KPIs, plus a session timeline (completed sessions\' KPI tiles, upcoming sessions\' comms checklist)',
} as const;

export const ANALYTICS_RESPONSE = {
  KPIS_FETCHED: 'Session KPIs fetched',
  LIVE_FETCHED: 'Live session status fetched',
  ATTENDEES_FETCHED: 'Session attendees fetched',
  RECONCILED: 'Session analytics reconciled',
  ATTENDANCE_MARKED: 'Attendance marked',
  DASHBOARD_FETCHED: 'Session analytics dashboard fetched',
  FOLLOW_UPS_FETCHED: 'Session follow-up seekers fetched',
  SEEKER_ANALYTICS_FETCHED: 'Seeker analytics fetched',
  PROGRAM_OVERALL_ANALYTICS_FETCHED: 'Program overall analytics fetched',
} as const;

export const ANALYTICS_LIST_DEFAULTS = {
  PAGE: 1,
  LIMIT: 20,
} as const;

export const ANALYTICS_V1_SWAGGER = {
  GET_KPIS:
    "Admin: v1 — the 8 header KPIs for a reconciled session, tagged with clickable kpiCategory/kpiFilter, plus the attendees screen's sideFilterSets (rmContact/rm/coordinator/final)",
  GET_ATTENDEES:
    'Admin: v1 — paginated per-seeker attendance table; filterable via a bundled `filters` JSON param (kpiCategory/kpiFilter for a clicked KPI tile, rmContact for an admin/coordinator-only RM scope-down, rm/coordinator/final for each attendance-source state), with sorting and table headers',
  GET_GENERAL_ATTENDEES:
    'Admin: v1 — paginated list of attendees who joined via the shared/common link (no personalized +reg<registrationId> email tag, so no registration to attribute them to); same row shape and table headers as .../attendees, narrowed to General; filterable via a bundled `filters` JSON param (kpiFilter for a clicked KPI tile, attendanceOutcome/knownStatus as independent checkbox side filters)',
  GET_GENERAL_KPIS:
    'Admin: v1 — the general-attendee counterpart to .../kpis: total general attendees, joined late, dropped, and rejoined, tagged with clickable kpiCategory/kpiFilter for .../general-attendees',
  GET_LIVE:
    'Admin: v1 — same paginated per-seeker attendance table as .../attendees (data/tableHeaders/filters/sorting), plus the live join/leave snapshot for a session currently in progress and a clickable Currently active/Currently inactive kpis tile pair for the registered-seeker roster (RM-scoped for an RM caller)',
} as const;

export const ANALYTICS_V1_RESPONSE = {
  KPIS_FETCHED: 'Session KPIs fetched',
  ATTENDEES_FETCHED: 'Session attendees fetched',
  GENERAL_ATTENDEES_FETCHED: 'Session general attendees fetched',
  GENERAL_KPIS_FETCHED: 'Session general attendee KPIs fetched',
  LIVE_FETCHED: 'Live session status fetched',
} as const;
