Feat: Ajout des types de sessions en map
This commit is contained in:
@@ -4,16 +4,16 @@ export type Role = "Admin" | "Athlete" | "Coach";
|
||||
export class User{
|
||||
id!: number;
|
||||
keycloakId!: String;
|
||||
nom!: String;
|
||||
prenom!:String;
|
||||
nom!: string;
|
||||
prenom!:string;
|
||||
sessions: Session[] = []; //nb: Admin liaison non symétrique /!\
|
||||
email!: String;
|
||||
email!: string;
|
||||
role!: Role;
|
||||
}
|
||||
|
||||
export class Ligne{
|
||||
id!: number;
|
||||
nom!: String;
|
||||
nom!: string;
|
||||
composition!: Athlete[] //les joueurs compososant la ligne
|
||||
tempsDeJeu!: number; // en minutes
|
||||
}
|
||||
@@ -23,19 +23,19 @@ export class Admin extends User{
|
||||
}
|
||||
|
||||
export class Athlete extends User{
|
||||
nom!: String;
|
||||
nom!: string;
|
||||
groupe!: Groupe;
|
||||
role!: Role;
|
||||
}
|
||||
|
||||
export class Coach extends User{
|
||||
nom!: String;
|
||||
nom!: string;
|
||||
role!: Role;
|
||||
}
|
||||
|
||||
export class Session{
|
||||
id!: number;
|
||||
name!: String;
|
||||
name!: string;
|
||||
activites: Activite[] = [];
|
||||
isRecurrent! : Boolean;
|
||||
creneau!: Date;
|
||||
@@ -48,10 +48,10 @@ export class Session{
|
||||
|
||||
export class Activite{
|
||||
id!: number;
|
||||
nom!: String;
|
||||
nom!: string;
|
||||
session!: Session;
|
||||
theme!: String;
|
||||
data!: Map<String,String>;
|
||||
theme!: string;
|
||||
data!: Map<string,string>;
|
||||
duree!: number;
|
||||
|
||||
}
|
||||
|
||||
@@ -72,6 +72,7 @@ function AthleteList({ athletes, sessions }: AthleteListProps) {
|
||||
<div><strong>Nombre de sessions:</strong> {stats.nbSessions}</div>
|
||||
<div><strong>Sessions/semaine:</strong> {stats.nbSessionsPerWeek.toFixed(2)}</div>
|
||||
<div><strong>Alerte:</strong> {alerte}</div>
|
||||
<div><strong>Distribuion des activités:</strong> {stats.distributions}</div>
|
||||
</li>
|
||||
);
|
||||
})}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Athlete, Session } from '../classes';
|
||||
import { Athlete, Session , Activite} from '../classes';
|
||||
|
||||
export interface StatsAthlete {
|
||||
nbSessions: number;
|
||||
nbSessionsPerWeek: number;
|
||||
isAlerte: boolean;
|
||||
distributions: Map<string, number>; //le nom de l'activité et son nombre
|
||||
distributions: Map<String, number>; //le nom de l'activité et son nombre
|
||||
}
|
||||
|
||||
export function niveauAlerte(stats: StatsAthlete, seuilCritique = 0, seuilMax = 0) {
|
||||
@@ -30,9 +30,13 @@ export function calculStatsAthlete(sessions: Session[], athlete: Athlete, debut:
|
||||
//incrementation (verifie si recurent ou non)
|
||||
const increment = session.isRecurrent ? nb_semaine : 1;
|
||||
nb_sessions += increment;
|
||||
//distribution des activités
|
||||
session.activites.forEach(activite => {
|
||||
const currentCount = distributions.get(activite.nom) || 0;
|
||||
distributions.set(activite.nom, currentCount + increment);
|
||||
});
|
||||
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
const nbSessionsPerWeek = nb_sessions / nb_semaine;
|
||||
const isAlerte = nbSessionsPerWeek > 8;
|
||||
|
||||
Reference in New Issue
Block a user