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{
|
export class User{
|
||||||
id!: number;
|
id!: number;
|
||||||
keycloakId!: String;
|
keycloakId!: String;
|
||||||
nom!: String;
|
nom!: string;
|
||||||
prenom!:String;
|
prenom!:string;
|
||||||
sessions: Session[] = []; //nb: Admin liaison non symétrique /!\
|
sessions: Session[] = []; //nb: Admin liaison non symétrique /!\
|
||||||
email!: String;
|
email!: string;
|
||||||
role!: Role;
|
role!: Role;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Ligne{
|
export class Ligne{
|
||||||
id!: number;
|
id!: number;
|
||||||
nom!: String;
|
nom!: string;
|
||||||
composition!: Athlete[] //les joueurs compososant la ligne
|
composition!: Athlete[] //les joueurs compososant la ligne
|
||||||
tempsDeJeu!: number; // en minutes
|
tempsDeJeu!: number; // en minutes
|
||||||
}
|
}
|
||||||
@@ -23,19 +23,19 @@ export class Admin extends User{
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class Athlete extends User{
|
export class Athlete extends User{
|
||||||
nom!: String;
|
nom!: string;
|
||||||
groupe!: Groupe;
|
groupe!: Groupe;
|
||||||
role!: Role;
|
role!: Role;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Coach extends User{
|
export class Coach extends User{
|
||||||
nom!: String;
|
nom!: string;
|
||||||
role!: Role;
|
role!: Role;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Session{
|
export class Session{
|
||||||
id!: number;
|
id!: number;
|
||||||
name!: String;
|
name!: string;
|
||||||
activites: Activite[] = [];
|
activites: Activite[] = [];
|
||||||
isRecurrent! : Boolean;
|
isRecurrent! : Boolean;
|
||||||
creneau!: Date;
|
creneau!: Date;
|
||||||
@@ -48,10 +48,10 @@ export class Session{
|
|||||||
|
|
||||||
export class Activite{
|
export class Activite{
|
||||||
id!: number;
|
id!: number;
|
||||||
nom!: String;
|
nom!: string;
|
||||||
session!: Session;
|
session!: Session;
|
||||||
theme!: String;
|
theme!: string;
|
||||||
data!: Map<String,String>;
|
data!: Map<string,string>;
|
||||||
duree!: number;
|
duree!: number;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ function AthleteList({ athletes, sessions }: AthleteListProps) {
|
|||||||
<div><strong>Nombre de sessions:</strong> {stats.nbSessions}</div>
|
<div><strong>Nombre de sessions:</strong> {stats.nbSessions}</div>
|
||||||
<div><strong>Sessions/semaine:</strong> {stats.nbSessionsPerWeek.toFixed(2)}</div>
|
<div><strong>Sessions/semaine:</strong> {stats.nbSessionsPerWeek.toFixed(2)}</div>
|
||||||
<div><strong>Alerte:</strong> {alerte}</div>
|
<div><strong>Alerte:</strong> {alerte}</div>
|
||||||
|
<div><strong>Distribuion des activités:</strong> {stats.distributions}</div>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Athlete, Session } from '../classes';
|
import { Athlete, Session , Activite} from '../classes';
|
||||||
|
|
||||||
export interface StatsAthlete {
|
export interface StatsAthlete {
|
||||||
nbSessions: number;
|
nbSessions: number;
|
||||||
nbSessionsPerWeek: number;
|
nbSessionsPerWeek: number;
|
||||||
isAlerte: boolean;
|
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) {
|
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)
|
//incrementation (verifie si recurent ou non)
|
||||||
const increment = session.isRecurrent ? nb_semaine : 1;
|
const increment = session.isRecurrent ? nb_semaine : 1;
|
||||||
nb_sessions += increment;
|
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 nbSessionsPerWeek = nb_sessions / nb_semaine;
|
||||||
const isAlerte = nbSessionsPerWeek > 8;
|
const isAlerte = nbSessionsPerWeek > 8;
|
||||||
|
|||||||
Reference in New Issue
Block a user