feat: limit possible new internship states for employers

This commit is contained in:
Veronika Fehérvíziová
2025-11-01 20:09:24 +01:00
parent 84d3459781
commit 8c41e72f1f

View File

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