Mohamed Maoulainine Maoulainine c3ad092512 fix: api integration
2025-05-02 01:26:08 +02:00

90 lines
1.9 KiB
TypeScript

// project.ts
class Project {
private _idProject?: number;
private _projectName?: string;
private _creationDate?: string;
private _logo?: string;
private _status?: "PENDING" | "ACTIVE" | "ENDED" | "ABORTED" | "REJECTED";
constructor(data: Partial<Project> = {}) {
this._idProject = data.idProject;
this._projectName = data.projectName;
this._creationDate = data.creationDate;
this._logo = data.logo;
this._status = data.status;
}
get idProject(): number | undefined {
return this._idProject;
}
set idProject(value: number | undefined) {
this._idProject = value;
}
get projectName(): string {
return this._projectName ?? "";
}
set projectName(value: string | undefined) {
this._projectName = value;
}
get creationDate(): string {
return this._creationDate ?? "";
}
set creationDate(value: string | undefined) {
this._creationDate = value;
}
get logo(): string | undefined {
return this._logo;
}
set logo(value: string | undefined) {
this._logo = value;
}
get status():
| "PENDING"
| "ACTIVE"
| "ENDED"
| "ABORTED"
| "REJECTED"
| undefined {
return this._status;
}
set status(
value:
| "PENDING"
| "ACTIVE"
| "ENDED"
| "ABORTED"
| "REJECTED"
| undefined
) {
this._status = value;
}
toObject() {
return {
idProject: this.idProject,
projectName: this.projectName,
creationDate: this.creationDate,
logo: this.logo,
status: this.status,
};
}
toCreatePayload() {
return {
projectName: this.projectName,
logo: this.logo,
};
}
}
export default Project;