74 lines
2.0 KiB
TypeScript
74 lines
2.0 KiB
TypeScript
import { Moment } from "moment";
|
|
import { Identifiable } from "./common";
|
|
import { Student } from "@/data/student";
|
|
import { Company } from "@/data/company";
|
|
|
|
export enum InternshipType {
|
|
FreeInternship = "FreeInternship",
|
|
GraduateInternship = "GraduateInternship",
|
|
FreeApprenticeship = "FreeApprenticeship",
|
|
PaidApprenticeship = "PaidApprenticeship",
|
|
ForeignInternship = "ForeignInternship",
|
|
UOP = "UOP",
|
|
UD = "UD",
|
|
UZ = "UZ",
|
|
Other = "Other",
|
|
}
|
|
|
|
export const internshipTypeLabels: { [type in InternshipType]: { label: string, description?: string } } = {
|
|
[InternshipType.FreeInternship]: {
|
|
label: "Umowa o organizację praktyki",
|
|
description: "Praktyka bezpłatna"
|
|
},
|
|
[InternshipType.GraduateInternship]: {
|
|
label: "Umowa o praktykę absolwencką"
|
|
},
|
|
[InternshipType.FreeApprenticeship]: {
|
|
label: "Umowa o staż bezpłatny"
|
|
},
|
|
[InternshipType.PaidApprenticeship]: {
|
|
label: "Umowa o staż płatny",
|
|
description: "np. przemysłowy"
|
|
},
|
|
[InternshipType.ForeignInternship]: {
|
|
label: "Praktyka zagraniczna",
|
|
description: "np. IAESTE, ERASMUS"
|
|
},
|
|
[InternshipType.UOP]: {
|
|
label: "Umowa o pracę"
|
|
},
|
|
[InternshipType.UD]: {
|
|
label: "Umowa o dzieło (w tym B2B)"
|
|
},
|
|
[InternshipType.UZ]: {
|
|
label: "Umowa o zlecenie (w tym B2B)"
|
|
},
|
|
[InternshipType.Other]: {
|
|
label: "Inna",
|
|
description: "Należy wprowadzić samodzielnie"
|
|
},
|
|
}
|
|
|
|
export interface InternshipProgramEntry extends Identifiable {
|
|
description: string;
|
|
}
|
|
|
|
export interface Internship extends Identifiable {
|
|
intern: Student,
|
|
type: InternshipType;
|
|
program: InternshipProgramEntry[];
|
|
startDate: Moment;
|
|
endDate: Moment;
|
|
isAccepted: boolean;
|
|
lengthInWeeks: number;
|
|
mentor: Mentor;
|
|
company: Company;
|
|
}
|
|
|
|
export interface Mentor {
|
|
name: string;
|
|
surname: string;
|
|
email: string;
|
|
phone: string | null;
|
|
}
|