88 lines
1.8 KiB
TypeScript
88 lines
1.8 KiB
TypeScript
export interface TeamMember {
|
|
uuid: string;
|
|
firstName: string;
|
|
lastName: string;
|
|
teamId: string;
|
|
email?: string;
|
|
role?: string;
|
|
joinDate?: string;
|
|
}
|
|
|
|
export interface TeamMemberSkill {
|
|
skillId: string;
|
|
skillName: string;
|
|
category: string;
|
|
level: "never" | "not-autonomous" | "autonomous" | "expert";
|
|
canMentor: boolean;
|
|
wantsToLearn: boolean;
|
|
}
|
|
|
|
export interface TeamMemberProfile {
|
|
member: TeamMember;
|
|
skills: TeamMemberSkill[];
|
|
totalSkills: number;
|
|
expertSkills: number;
|
|
mentorSkills: number;
|
|
learningSkills: number;
|
|
averageLevel: number;
|
|
}
|
|
|
|
export interface SkillGap {
|
|
skillId: string;
|
|
skillName: string;
|
|
category: string;
|
|
icon?: string;
|
|
teamMembers: number;
|
|
experts: number;
|
|
mentors: number;
|
|
learners: number;
|
|
coverage: number; // Pourcentage de couverture
|
|
risk: "low" | "medium" | "high";
|
|
}
|
|
|
|
export interface CategoryCoverage {
|
|
category: string;
|
|
totalSkills: number;
|
|
coveredSkills: number;
|
|
coverage: number;
|
|
experts: number;
|
|
mentors: number;
|
|
learners: number;
|
|
}
|
|
|
|
export interface TeamReviewData {
|
|
team: {
|
|
id: string;
|
|
name: string;
|
|
direction: string;
|
|
};
|
|
members: TeamMemberProfile[];
|
|
skillGaps: SkillGap[];
|
|
categoryCoverage: CategoryCoverage[];
|
|
recommendations: string[];
|
|
stats: {
|
|
totalMembers: number;
|
|
totalSkills: number;
|
|
averageTeamLevel: number;
|
|
mentorshipOpportunities: number;
|
|
learningNeeds: number;
|
|
};
|
|
}
|
|
|
|
export interface MentorOpportunity {
|
|
mentor: TeamMember;
|
|
mentee: TeamMember;
|
|
skill: string;
|
|
category: string;
|
|
mentorLevel: "autonomous" | "expert";
|
|
menteeLevel: "never" | "not-autonomous";
|
|
}
|
|
|
|
export interface LearningPath {
|
|
member: TeamMember;
|
|
currentSkills: TeamMemberSkill[];
|
|
targetSkills: TeamMemberSkill[];
|
|
recommendedMentors: TeamMember[];
|
|
estimatedTimeToAutonomy: number; // en mois
|
|
}
|