78 lines
1.4 KiB
TypeScript
78 lines
1.4 KiB
TypeScript
export type SkillLevel =
|
|
| "never"
|
|
| "not-autonomous"
|
|
| "autonomous"
|
|
| "expert"
|
|
| null;
|
|
|
|
export const SKILL_LEVELS: Record<Exclude<SkillLevel, null>, string> = {
|
|
never: "Jamais pratiqué",
|
|
"not-autonomous": "Pas autonome",
|
|
autonomous: "Autonome",
|
|
expert: "Maîtrise",
|
|
};
|
|
|
|
export const SKILL_LEVEL_VALUES: Record<Exclude<SkillLevel, null>, number> = {
|
|
never: 0,
|
|
"not-autonomous": 1,
|
|
autonomous: 2,
|
|
expert: 3,
|
|
};
|
|
|
|
export type SkillImportance = "incontournable" | "majeure" | "standard";
|
|
|
|
export interface Skill {
|
|
id: string;
|
|
name: string;
|
|
description: string;
|
|
icon?: string;
|
|
links: string[];
|
|
importance: SkillImportance;
|
|
}
|
|
|
|
export interface SkillCategory {
|
|
category: string;
|
|
icon: string;
|
|
id: string;
|
|
name: string;
|
|
skills: Skill[];
|
|
}
|
|
|
|
export interface Team {
|
|
id: string;
|
|
name: string;
|
|
direction: string;
|
|
}
|
|
|
|
export interface UserProfile {
|
|
firstName: string;
|
|
lastName: string;
|
|
teamId: string;
|
|
uuid?: string;
|
|
}
|
|
|
|
export interface SkillEvaluation {
|
|
skillId: string;
|
|
level: SkillLevel;
|
|
canMentor?: boolean;
|
|
wantsToLearn?: boolean;
|
|
}
|
|
|
|
export interface CategoryEvaluation {
|
|
category: string;
|
|
skills: SkillEvaluation[];
|
|
selectedSkillIds: string[]; // List of skill IDs the user wants to evaluate
|
|
}
|
|
|
|
export interface UserEvaluation {
|
|
profile: UserProfile;
|
|
evaluations: CategoryEvaluation[];
|
|
lastUpdated: string;
|
|
}
|
|
|
|
export interface RadarChartData {
|
|
category: string;
|
|
score: number;
|
|
maxScore: number;
|
|
}
|