diff --git a/backend/app/Enums/InternshipStatus.php b/backend/app/Enums/InternshipStatus.php new file mode 100644 index 0000000..93a34d4 --- /dev/null +++ b/backend/app/Enums/InternshipStatus.php @@ -0,0 +1,22 @@ + $case->value, self::cases()); + } +} diff --git a/backend/app/Models/InternshipStatusData.php b/backend/app/Models/InternshipStatusData.php index baaec6f..63c4c28 100644 --- a/backend/app/Models/InternshipStatusData.php +++ b/backend/app/Models/InternshipStatusData.php @@ -33,6 +33,20 @@ class InternshipStatusData extends Model 'updated_at', ]; + protected $table = 'internship_statuses'; + + /** + * Get the attributes that should be cast. + * + * @return array + */ + protected function casts(): array + { + return [ + 'status' => '\App\Enums\InternshipStatus', + ]; + } + public function modifiedBy() { return $this->belongsTo(User::class, 'modified_by'); @@ -43,7 +57,7 @@ class InternshipStatusData extends Model return [ 'id' => $this->id, 'internship_id' => $this->internship_id, - 'status' => $this->status, + 'status' => $this->status->value, 'changed' => $this->changed, 'note' => $this->note, 'modified_by' => $this->modifiedBy, diff --git a/frontend/app/types/internship_status.ts b/frontend/app/types/internship_status.ts index 33d027c..fff5ac6 100644 --- a/frontend/app/types/internship_status.ts +++ b/frontend/app/types/internship_status.ts @@ -14,20 +14,29 @@ export interface NewInternshipStatusData { export enum InternshipStatus { SUBMITTED = 'SUBMITTED', - CONFIRMED = 'CONFIRMED', - DENIED = 'DENIED', + + CONFIRMED_BY_COMPANY = 'CONFIRMED_BY_COMPANY', + CONFIRMED_BY_ADMIN = 'CONFIRMED_BY_ADMIN', + + DENIED_BY_COMPANY = 'DENIED_BY_COMPANY', + DENIED_BY_ADMIN = 'DENIED_BY_ADMIN', + DEFENDED = 'DEFENDED', - NOT_DEFENDED = 'NOT_DEFENDED' -}; + NOT_DEFENDED = 'NOT_DEFENDED', +} export function prettyInternshipStatus(status: InternshipStatus) { switch (status) { case InternshipStatus.SUBMITTED: return "Zadané"; - case InternshipStatus.CONFIRMED: - return "Potvrdené"; - case InternshipStatus.DENIED: - return "Zamietnuté"; + case InternshipStatus.CONFIRMED_BY_COMPANY: + return "Potvrdené firmou"; + case InternshipStatus.CONFIRMED_BY_ADMIN: + return "Potvrdené garantom"; + case InternshipStatus.DENIED_BY_COMPANY: + return "Zamietnuté firmou"; + case InternshipStatus.DENIED_BY_ADMIN: + return "Zamietnuté garantom"; case InternshipStatus.DEFENDED: return "Obhájené"; case InternshipStatus.NOT_DEFENDED: