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; }