From 8c41e72f1fcd3ee864a07c612276c4f15d2fe537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veronika=20Feh=C3=A9rv=C3=ADziov=C3=A1?= <128744051+VeronikaFeherviziova@users.noreply.github.com> Date: Sat, 1 Nov 2025 20:09:24 +0100 Subject: [PATCH] feat: limit possible new internship states for employers --- frontend/app/types/internship_status.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frontend/app/types/internship_status.ts b/frontend/app/types/internship_status.ts index 5a57726..f952249 100644 --- a/frontend/app/types/internship_status.ts +++ b/frontend/app/types/internship_status.ts @@ -1,3 +1,4 @@ +import { Role } from "./role"; import type { User } from "./user"; export interface InternshipStatusData { @@ -34,13 +35,25 @@ export function prettyInternshipStatus(status: InternshipStatus) { } } -export function possibleNextStates(status: InternshipStatus) { +export function possibleNextStates(status: InternshipStatus, user_role: Role) { switch (status) { case InternshipStatus.SUBMITTED: + if (user_role === Role.EMPLOYER) { + return []; + } + return [InternshipStatus.CONFIRMED, InternshipStatus.DENIED]; case InternshipStatus.CONFIRMED: + if (user_role === Role.EMPLOYER) { + return [InternshipStatus.DENIED]; + } + return [InternshipStatus.SUBMITTED, InternshipStatus.DENIED, InternshipStatus.DEFENDED, InternshipStatus.NOT_DEFENDED]; case InternshipStatus.DENIED: + if (user_role === Role.EMPLOYER) { + return [InternshipStatus.CONFIRMED]; + } + return [InternshipStatus.SUBMITTED, InternshipStatus.CONFIRMED]; case InternshipStatus.DEFENDED: return [];