analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
147 lines • 3.03 kB
TypeScript
/**
* User information from backend API
*/
export interface User {
id: string;
email: string;
name: string;
active: boolean;
createdAt: string;
updatedAt: string;
}
/**
* Additional user information and profile data
*/
export interface UserInfos {
id: string;
userId: string;
urlProfilePicture: string | null;
genre: string | null;
facebook: string | null;
instagram: string | null;
studentNumber: string | null;
street: string | null;
streetNumber: string | null;
neighborhood: string | null;
complement: string | null;
city: string | null;
state: string | null;
zipCode: string | null;
timeSpent: number;
lastInteraction: string;
createdAt: string;
updatedAt: string;
}
/**
* User institution profile information
*/
export interface Profile {
id: string;
name: string;
description: string;
position: number;
}
/**
* Institution information
*/
export interface Institution {
id: string;
name: string;
type: string;
}
/**
* School information
*/
export interface School {
id: string;
name: string;
}
/**
* School year information
*/
export interface SchoolYear {
id: string;
name: string;
}
/**
* Class information
*/
export interface Class {
id: string;
name: string;
}
/**
* User institution relationship
*/
export interface UserInstitution {
profile: Profile;
institution: Institution;
school: School;
schoolYear: SchoolYear;
class: Class;
}
/**
* Subject information
*/
export interface Subject {
id: string;
name: string;
}
/**
* Subject teacher topic class relationship
*/
export interface SubTeacherTopicClass {
subject: Subject;
class: Class;
}
/**
* Complete user data response from GET /auth/me endpoint
*/
export interface MyDataResponse {
message: string;
user: User;
userInfos: UserInfos;
userInstitutions: UserInstitution[];
subTeacherTopicClasses: SubTeacherTopicClass[];
}
/**
* Update user data request body for PATCH /user/me endpoint
*/
export interface UpdateMyDataRequest {
name: string;
email: string;
urlProfilePicture?: string;
genre?: string;
facebook?: string;
instagram?: string;
street?: string;
streetNumber?: string;
neighborhood?: string;
complement?: string;
city?: string;
state?: string;
zipCode?: string;
}
/**
* User telemetry data for student performance analytics
*/
export interface UserTelemetryData {
timeSpent: number;
lastInteraction: string | null;
accessCount: number;
}
/**
* Response from GET /user/:userId endpoint for student details
*/
export interface StudentDetailsResponse {
message: string;
data: {
user: User;
userInfos: UserInfos;
userInstitutions: UserInstitution[];
teacherTopicClasses: SubTeacherTopicClass[];
userDependents: unknown[];
telemetry: UserTelemetryData | null;
};
}
//# sourceMappingURL=user.d.ts.map