analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
109 lines • 2.67 kB
TypeScript
import { ScoreType } from '../../types/common';
/**
* Performance data for a knowledge area
*/
export interface AreaKnowledgePerformance {
id: string;
name: string;
urlCover: string | null;
/** Icon identifier from backend */
icon: string;
/** Hex color from backend (e.g., "#4B0082") */
color: string;
percentage: number;
questionsTotal: number;
questionsCorrect: number;
/** All IDs when areas with same name are merged (for multi-school scenarios) */
relatedIds?: string[];
}
/**
* Performance data for essays (Redação)
*/
export interface EssayPerformance {
name: string;
/** Hex color from backend (e.g., "#F43F5E") */
color: string;
/** Icon identifier from backend */
icon: string;
percentage: number;
totalEssays: number;
totalStudents: number;
}
/**
* Main general overview data structure
*/
export interface GeneralOverviewData {
overallPercentage: number;
totalQuestions: number;
totalCorrect: number;
areas: AreaKnowledgePerformance[];
essay?: EssayPerformance;
}
/**
* Subject item with icon and color info
* Used to determine area card styling
*/
export interface SubjectItem {
id: string;
name: string;
color: string;
icon: string;
areaKnowledgeId: string;
}
/**
* Request parameters for general overview
*/
export interface GeneralOverviewParams {
period: string;
schoolIds?: string[];
schoolYearIds?: string[];
classIds?: string[];
studentsIds?: string[];
scoreType?: ScoreType;
}
/**
* API response structure
*/
export interface GeneralOverviewApiResponse {
message: string;
data: GeneralOverviewData;
}
/**
* Hook internal state
*/
export interface UseGeneralOverviewState {
data: GeneralOverviewData | null;
loading: boolean;
isRefreshing: boolean;
error: string | null;
}
/**
* Hook return type
*/
export interface UseGeneralOverviewReturn extends UseGeneralOverviewState {
fetchOverview: (params: GeneralOverviewParams, refresh?: boolean) => Promise<void>;
reset: () => void;
}
/**
* Props for GeneralOverviewSection component
*/
export interface GeneralOverviewSectionProps {
/** Overview data to display */
data: GeneralOverviewData | null;
/** Loading state */
loading?: boolean;
/** Error message */
error?: string | null;
/** Score display type (percentage or TRI) */
scoreType?: ScoreType;
}
/**
* Labels for GeneralOverviewSection
*/
export interface GeneralOverviewLabels {
title?: string;
description?: string;
loadingText?: string;
errorText?: string;
}
//# sourceMappingURL=types.d.ts.map