UNPKG

analytica-frontend-lib

Version:

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

114 lines 2.8 kB
import type { ActivityFilters } from '../SimulatedStudentDetailsModal/types'; import type { BaseApiClient } from '../../types/api'; /** * Content info for details modal */ export interface ContentDetailsInfo { id: string; name: string; bnccCode: string | null; subject: { id: string; name: string; }; questionsCount: number; studentsCount: number; } /** * Performance counters for content details */ export interface ContentPerformanceCounters { aboveAverage: number; atAverage: number; belowAverage: number; } /** * Student item in content details list */ export interface ContentStudentItem { studentId: string; institutionId: string; userInstitutionId: string; name: string; school: string; schoolYear: string; class: string; /** Average score in simulated exams (0-1000 scale) */ average: number; /** Performance percentage for this content (0-100) */ performance: number; } /** * Paginated students for content details */ export interface ContentStudentsPaginated { data: ContentStudentItem[]; page: number; limit: number; total: number; } /** * Complete content details data */ export interface ContentDetailsData { content: ContentDetailsInfo; counters: ContentPerformanceCounters; students: ContentStudentsPaginated; } /** * Parameters for fetching content details */ export interface ContentDetailsParams { activityFilters: ActivityFilters; contentId: string; period: string; schoolIds?: string[]; schoolYearIds?: string[]; classIds?: string[]; studentsIds?: string[]; page?: number; limit?: number; orderBy?: string; order?: 'asc' | 'desc'; } /** * API response structure */ export interface ContentDetailsApiResponse { message: string; data: ContentDetailsData; } /** * Hook state */ export interface UseSimulatedContentDetailsState { data: ContentDetailsData | null; loading: boolean; error: string | null; } /** * Hook return type */ export interface UseSimulatedContentDetailsReturn extends UseSimulatedContentDetailsState { fetchDetails: (params: ContentDetailsParams) => Promise<void>; reset: () => void; } /** * Modal props */ export interface SimulatedContentDetailsModalProps { readonly api: BaseApiClient; readonly isOpen: boolean; readonly onClose: () => void; readonly activityFilters: ActivityFilters; readonly contentId: string | null; readonly contentName?: string; readonly period: string; readonly filters?: { schoolIds?: string[]; schoolYearIds?: string[]; classIds?: string[]; }; } export type { ActivityFilters } from '../SimulatedStudentDetailsModal/types'; //# sourceMappingURL=types.d.ts.map