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 [];