UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

156 lines 3.88 kB
/** * Exam History Types * * This file contains types related to the exam history feature, * including API responses, table items, and filters. * * Uses /activities/history endpoint with type=PROVA to filter for exams. */ /** * Filter option type for exam filters */ export interface ExamFilterOption { id: string; name: string; [key: string]: unknown; } /** * Exam status enum - specific for PROVA type activities * Manually set by professor (different from automatic activity status) */ export declare enum ExamStatus { AGENDADA = "AGENDADA", EM_ANDAMENTO = "EM_ANDAMENTO", FINALIZADA = "FINALIZADA", CANCELADA = "CANCELADA" } /** * Exam display status for UI */ export declare enum ExamDisplayStatus { AGENDADA = "Agendada", EM_ANDAMENTO = "Em andamento", FINALIZADA = "Finalizada", CANCELADA = "Cancelada" } /** * Map API exam status to display status * @param apiStatus - Status from backend API * @returns Formatted status for UI display */ export declare const mapExamStatusToDisplay: (apiStatus: ExamStatus) => ExamDisplayStatus; /** * Filter options extracted from exams API responses */ export interface ExamApiFilterOptions { schools: ExamFilterOption[]; classes: ExamFilterOption[]; subjects: ExamFilterOption[]; schoolYears: ExamFilterOption[]; } /** * Generic entity reference with id and name */ type EntityRef = { id: string; name: string; }; /** * Subject object from backend API response */ export interface ExamSubject extends EntityRef { areaKnowledgeId: string; } /** * Breakdown item per school/class for an exam response */ export interface ExamBreakdownItem { school?: EntityRef | null; schoolYear?: EntityRef | null; class?: EntityRef | null; totalStudents: number; answeredStudents: number; completionPercentage: number; } /** * Exam history response from backend API /exams/history */ export interface ExamHistoryResponse { id: string; title: string; startDate: string | null; status: ExamStatus; completionPercentage: number; questionCount: number; createdAt: string; subject: ExamSubject | null; creator: EntityRef | null; totalStudents?: number; answeredStudents?: number; breakdown?: ExamBreakdownItem[]; } /** * Exam table item interface for exams list table * * Columns: * - startDate: Data da prova (inicio) * - title: Titulo * - school: Escola * - class: Turma * - status: Status (Agendada, Em andamento, Finalizada, Cancelada) * - questionCount: Questoes * - createdAt: Criada em * - completionPercentage: Conclusao */ export interface ExamTableItem extends Record<string, unknown> { id: string; startDate: string; title: string; school: string; class: string; status: ExamDisplayStatus; questionCount: number; createdAt: string; completionPercentage: number; } /** * Exams history API complete response from /activities/history endpoint with type=PROVA */ export interface ExamsHistoryApiResponse { message: string; data: { activities: ExamHistoryResponse[]; pagination: { total: number; page: number; limit: number; totalPages: number; }; }; } /** * Exam history filters for API query parameters */ export interface ExamHistoryFilters { page?: number; limit?: number; status?: ExamStatus; search?: string; startDate?: string; subjectId?: string; schoolId?: string; classId?: string; sortBy?: 'startDate' | 'title' | 'completionPercentage' | 'createdAt'; sortOrder?: 'asc' | 'desc'; } /** * Exam pagination interface */ export interface ExamPagination { total: number; page: number; limit: number; totalPages: number; } export {}; //# sourceMappingURL=examsHistory.d.ts.map