UNPKG

analytica-frontend-lib

Version:

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

122 lines 3.4 kB
import type { BaseApiClient } from '../types/api'; import type { CategoryConfig } from '../CheckBoxGroup/index'; /** * School type for categories data */ export interface School { id: string; companyName: string; } /** * SchoolYear type for categories data */ export interface SchoolYear { id: string; name: string; schoolId: string; } /** * Class type for categories data */ export interface Class { id: string; name: string; schoolYearId: string; } /** * Student type for categories data with nested school/schoolYear/class */ export interface Student { id: string; email: string; name: string; active: boolean; createdAt: string; updatedAt: string; userInstitutionId: string; institutionId: string; profileId: string; school: { id: string; name: string; }; schoolYear: { id: string; name: string; }; class: { id: string; name: string; }; } /** * Fetch students using POST /students/filters based on selected schools, schoolYears, and classes * * @param apiClient - API client instance * @param filters - Object with schoolIds, schoolYearIds, and classIds arrays * @returns Promise resolving to array of students * * @example * ```ts * const students = await fetchStudentsByFilters(apiClient, { * schoolIds: ['school-1'], * schoolYearIds: ['year-1'], * classIds: ['class-1'] * }); * ``` */ export declare function fetchStudentsByFilters(apiClient: BaseApiClient, filters: { schoolIds?: string[]; schoolYearIds?: string[]; classIds?: string[]; }): Promise<Student[]>; /** * Fetch classes filtered by selected schools/schoolYears via GET /classes. * Wire format is comma-joined strings (NOT arrays): axios serializes an array * param with brackets (`schoolId[]=a`) which the backend's default querystring * parser does not fold into `schoolId`; a comma-joined string (`schoolId=a,b`) * is serializer-agnostic and the backend splits it. A UUID never contains a comma. * * @param apiClient - API client instance * @param filters - Object with schoolIds and/or schoolYearIds arrays * @returns Promise resolving to array of classes * * @example * ```ts * const classes = await fetchClassesByFilters(apiClient, { * schoolIds: ['school-1'], * schoolYearIds: ['year-1'], * }); * ``` */ export declare function fetchClassesByFilters(apiClient: BaseApiClient, filters: { schoolIds?: string[]; schoolYearIds?: string[]; }): Promise<Class[]>; /** * Load categories data from API and transform to CategoryConfig format * * @param apiClient - API client instance * @param existingCategories - Current categories array to check if already loaded * @returns Promise resolving to array of CategoryConfig * * @example * ```ts * const categories = await loadCategoriesData(apiClient, []); * ``` */ export declare function loadCategoriesData(apiClient: BaseApiClient, existingCategories: CategoryConfig[]): Promise<CategoryConfig[]>; /** * Format time for display (HH:mm format) * * @param date - Date object to format * @returns Formatted time string in HH:mm format * * @example * ```ts * const time = formatTime(new Date('2025-01-01T14:30:00')); * // Returns: '14:30' * ``` */ export declare function formatTime(date: Date): string; //# sourceMappingURL=categoryDataUtils.d.ts.map