You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
205 lines
4.3 KiB
205 lines
4.3 KiB
import {
|
|
EHealthProblem,
|
|
ESleepLevel,
|
|
ESport,
|
|
ESportLevel,
|
|
} from "./enums/Enums";
|
|
|
|
export class User {
|
|
private _name: string;
|
|
private _age: number | undefined;
|
|
private _height: number | undefined;
|
|
private _weight: number | undefined;
|
|
private _sexe: boolean | undefined; // true = Male, false = Female
|
|
private _logo: string | undefined;
|
|
private _nbSessionPerWeek: number | undefined;
|
|
private _goal: string | undefined;
|
|
private _healthProblems: EHealthProblem[] | undefined;
|
|
private _sport: ESport | undefined;
|
|
private _sleepLevel: ESleepLevel | undefined;
|
|
private _sportLevel: ESportLevel | undefined;
|
|
private _email: string;
|
|
private _password: string;
|
|
|
|
constructor(
|
|
name: string,
|
|
age: number | undefined,
|
|
height: number | undefined,
|
|
weight: number | undefined,
|
|
sexe: boolean | undefined,
|
|
logo: string | undefined,
|
|
nbSessionPerWeek: number | undefined,
|
|
goal: string | undefined,
|
|
healthProblems: EHealthProblem[] | undefined,
|
|
sport: ESport | undefined,
|
|
sleepLevel: ESleepLevel | undefined,
|
|
sportLevel: ESportLevel | undefined,
|
|
email: string,
|
|
password: string
|
|
) {
|
|
this._name = name;
|
|
this._age = age;
|
|
this._height = height;
|
|
this._weight = weight;
|
|
this._sexe = sexe;
|
|
this._logo = logo;
|
|
this._nbSessionPerWeek = nbSessionPerWeek;
|
|
this._goal = goal;
|
|
this._healthProblems = healthProblems;
|
|
this._sport = sport;
|
|
this._sleepLevel = sleepLevel;
|
|
this._sportLevel = sportLevel;
|
|
this._email = email;
|
|
this._password = password;
|
|
}
|
|
|
|
// Getters
|
|
get name(): string {
|
|
return this._name;
|
|
}
|
|
|
|
get age(): number | undefined {
|
|
return this._age;
|
|
}
|
|
|
|
get height(): number | undefined {
|
|
return this._height;
|
|
}
|
|
|
|
get weight(): number | undefined {
|
|
return this._weight;
|
|
}
|
|
|
|
get sexe(): boolean | undefined {
|
|
return this._sexe;
|
|
}
|
|
|
|
get logo(): string | undefined {
|
|
return this._logo;
|
|
}
|
|
|
|
get nbSessionPerWeek(): number | undefined {
|
|
return this._nbSessionPerWeek;
|
|
}
|
|
|
|
get goals(): string | undefined {
|
|
return this._goal;
|
|
}
|
|
|
|
get healthProblems(): EHealthProblem[] | undefined {
|
|
return this._healthProblems;
|
|
}
|
|
|
|
get sports(): ESport | undefined {
|
|
return this._sport;
|
|
}
|
|
|
|
get sleepLevel(): ESleepLevel | undefined {
|
|
return this._sleepLevel;
|
|
}
|
|
|
|
get sportLevel(): ESportLevel | undefined {
|
|
return this._sportLevel;
|
|
}
|
|
|
|
get email(): string {
|
|
return this._email;
|
|
}
|
|
|
|
get password(): string {
|
|
return this._password;
|
|
}
|
|
|
|
// Setters
|
|
set name(value: string) {
|
|
this._name = value;
|
|
}
|
|
|
|
set age(value: number | undefined) {
|
|
this._age = value;
|
|
}
|
|
|
|
set height(value: number | undefined) {
|
|
this._height = value;
|
|
}
|
|
|
|
set weight(value: number | undefined) {
|
|
this._weight = value;
|
|
}
|
|
|
|
set sexe(value: boolean | undefined) {
|
|
this._sexe = value;
|
|
}
|
|
|
|
set logo(value: string | undefined) {
|
|
this._logo = value;
|
|
}
|
|
|
|
set nbSessionPerWeek(value: number | undefined) {
|
|
this._nbSessionPerWeek = value;
|
|
}
|
|
|
|
set goals(value: string | undefined) {
|
|
this._goal = value;
|
|
}
|
|
|
|
set healthProblems(value: EHealthProblem[] | undefined) {
|
|
this._healthProblems = value;
|
|
}
|
|
|
|
set sports(value: ESport | undefined) {
|
|
this._sport = value;
|
|
}
|
|
|
|
set sleepLevel(value: ESleepLevel | undefined) {
|
|
this._sleepLevel = value;
|
|
}
|
|
|
|
set sportLevel(value: ESportLevel | undefined) {
|
|
this._sportLevel = value;
|
|
}
|
|
|
|
set email(value: string) {
|
|
this._email = value;
|
|
}
|
|
|
|
set password(value: string) {
|
|
this._password = value;
|
|
}
|
|
|
|
public isQuizDone(): boolean {
|
|
return (
|
|
this._name !== undefined &&
|
|
this._age !== undefined &&
|
|
this._height !== undefined &&
|
|
this._weight !== undefined &&
|
|
this._sexe !== undefined &&
|
|
this._nbSessionPerWeek !== undefined &&
|
|
this._goal !== undefined &&
|
|
this._healthProblems !== undefined &&
|
|
this._sport !== undefined &&
|
|
this._sleepLevel !== undefined &&
|
|
this._sportLevel !== undefined
|
|
);
|
|
}
|
|
|
|
static fromJSON(json: any): User {
|
|
return new User(
|
|
json._name,
|
|
json._age,
|
|
json._height,
|
|
json._weight,
|
|
json._sexe,
|
|
json._logo,
|
|
json._nbSessionPerWeek,
|
|
json._goal,
|
|
json._healthProblems,
|
|
json._sport,
|
|
json._sleepLevel,
|
|
json._sportLevel,
|
|
json._email,
|
|
json._password
|
|
);
|
|
}
|
|
}
|