import {QuestionType} from '../feedback.interface'; export interface SongPickResult { songId: number; title: string; votes: number; } export interface SongPickReport { questionId: number | null; label: string; totalVotes: number; results: SongPickResult[]; } export interface SongRatingResult { songId: number; title: string; average: number; count: number; } export interface SongRatingReport { questionId: number | null; label: string; results: SongRatingResult[]; } export interface FreeTextResponse { submissionId: number; submittedAt: string; text: string; } export interface FreeTextReport { questionId: number | null; label: string; responses: FreeTextResponse[]; hasMore: boolean; } export interface EventReport { event: { eventId: number; name: string; eventDate: string; feedbackDeadline: string; }; totalSubmissions: number; firstSubmissionAt: string | null; lastSubmissionAt: string | null; songPicks: SongPickReport[]; songRatings: SongRatingReport[]; freeText: FreeTextReport[]; guestBookCount: number; newsletter: { total: number; sent: number; pending: number; failed: number; skipped: number; }; } /** Raw answer row as read from submission_answers, joined with submissions.submitted_at. */ export interface AnswerRow { submissionId: number; submittedAt: string; questionId: number | null; questionLabel: string; questionType: QuestionType; songId: number | null; songTitle: string | null; rating: number | null; textAnswer: string | null; }