/** One registrant unregistered from the final session for missing an earlier one. */
export interface FinalSessionConfirmBlockedItem {
  registrationId: number;
  fullName: string;
  /** Non-final `program_session.id`s this registrant was found absent from. */
  missedSessionIds: number[];
}

/** One registrant the confirm run tried and failed to unregister. */
export interface FinalSessionConfirmFailedItem {
  registrationId: number;
  error: string;
}

/** Outcome of one `confirmFinalSession` run for a program. */
export interface FinalSessionConfirmResult {
  programId: number;
  finalSessionId: number;
  totalEvaluated: number;
  blockedCount: number;
  blocked: FinalSessionConfirmBlockedItem[];
  failed: FinalSessionConfirmFailedItem[];
}
