parent
26b833b88b
commit
0b13faa5e1
@ -0,0 +1,120 @@
|
|||||||
|
// TODO: use enums
|
||||||
|
export const titleOptions = [
|
||||||
|
{
|
||||||
|
label: 'Software engineer',
|
||||||
|
value: 'Software engineer',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Frontend engineer',
|
||||||
|
value: 'Frontend engineer',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Backend engineer',
|
||||||
|
value: 'Backend engineer',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Full-stack engineer',
|
||||||
|
value: 'Full-stack engineer',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const currencyOptions = [
|
||||||
|
{
|
||||||
|
label: 'USD',
|
||||||
|
value: 'USD',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'SGD',
|
||||||
|
value: 'SGD',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'EUR',
|
||||||
|
value: 'EUR',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const companyOptions = [
|
||||||
|
{
|
||||||
|
label: 'Shopee',
|
||||||
|
value: 'id-abc123',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const locationOptions = [
|
||||||
|
{
|
||||||
|
label: 'Singapore, Singapore',
|
||||||
|
value: 'Singapore, Singapore',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const internshipCycleOptions = [
|
||||||
|
{
|
||||||
|
label: 'Summer',
|
||||||
|
value: 'Summer',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Winter',
|
||||||
|
value: 'Winter',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Spring',
|
||||||
|
value: 'Spring',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Fall',
|
||||||
|
value: 'Fall',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Full-year',
|
||||||
|
value: 'Full-year',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const yearOptions = [
|
||||||
|
{
|
||||||
|
label: '2021',
|
||||||
|
value: '2021',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '2022',
|
||||||
|
value: '2022',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '2023',
|
||||||
|
value: '2023',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '2024',
|
||||||
|
value: '2024',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const educationLevelOptions = [
|
||||||
|
{
|
||||||
|
label: 'Bachelor',
|
||||||
|
value: 'Bachelor',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Masters',
|
||||||
|
value: 'Masters',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Doctorate',
|
||||||
|
value: 'Doctorate',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export const educationFieldOptions = [
|
||||||
|
{
|
||||||
|
label: 'Computer Science',
|
||||||
|
value: 'Computer Science',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Information Security',
|
||||||
|
value: 'Information Security',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Business Analytics',
|
||||||
|
value: 'Business Analytics',
|
||||||
|
},
|
||||||
|
];
|
@ -0,0 +1,100 @@
|
|||||||
|
/*
|
||||||
|
* Offer Profile Submission
|
||||||
|
*/
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-shadow
|
||||||
|
export enum JobType {
|
||||||
|
FullTime = 'FULLTIME',
|
||||||
|
Internship = 'INTERNSHIP',
|
||||||
|
}
|
||||||
|
|
||||||
|
type Money = {
|
||||||
|
currency: string;
|
||||||
|
value: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
type FullTimeJobData = {
|
||||||
|
base: Money;
|
||||||
|
bonus: Money;
|
||||||
|
level: string;
|
||||||
|
specialization: string;
|
||||||
|
stocks: Money;
|
||||||
|
title: string;
|
||||||
|
totalCompensation: Money;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type FullTimeOfferFormData = {
|
||||||
|
comments: string;
|
||||||
|
companyId: string;
|
||||||
|
job: FullTimeJobData;
|
||||||
|
jobType: string;
|
||||||
|
location: string;
|
||||||
|
monthYearReceived: string;
|
||||||
|
negotiationStrategy: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
type InternshipJobData = {
|
||||||
|
internshipCycle: string;
|
||||||
|
monthlySalary: Money;
|
||||||
|
specialization: string;
|
||||||
|
startYear: number;
|
||||||
|
title: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type InternshipOfferFormData = {
|
||||||
|
comments: string;
|
||||||
|
companyId: string;
|
||||||
|
job: InternshipJobData;
|
||||||
|
jobType: string;
|
||||||
|
location: string;
|
||||||
|
monthYearReceived: string;
|
||||||
|
negotiationStrategy: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
type OfferDetailsFormData = FullTimeOfferFormData | InternshipOfferFormData;
|
||||||
|
|
||||||
|
type SpecificYoe = {
|
||||||
|
domain: string;
|
||||||
|
yoe: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
type FullTimeExperience = {
|
||||||
|
level: string;
|
||||||
|
totalCompensation: Money;
|
||||||
|
};
|
||||||
|
|
||||||
|
type InternshipExperience = {
|
||||||
|
monthlySalary: Money;
|
||||||
|
};
|
||||||
|
|
||||||
|
type GeneralExperience = {
|
||||||
|
companyId: string;
|
||||||
|
durationInMonths: number;
|
||||||
|
jobType: string;
|
||||||
|
specialization: string;
|
||||||
|
title: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
type Experience =
|
||||||
|
| (FullTimeExperience & GeneralExperience)
|
||||||
|
| (GeneralExperience & InternshipExperience);
|
||||||
|
|
||||||
|
type Education = {
|
||||||
|
endDate: Date;
|
||||||
|
field: string;
|
||||||
|
school: string;
|
||||||
|
startDate: Date;
|
||||||
|
type: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
type BackgroundFormData = {
|
||||||
|
education: Education;
|
||||||
|
experience: Experience;
|
||||||
|
specificYoes: Array<SpecificYoe>;
|
||||||
|
totalYoe: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type SubmitOfferFormData = {
|
||||||
|
background: BackgroundFormData;
|
||||||
|
offers: Array<OfferDetailsFormData>;
|
||||||
|
};
|
Loading…
Reference in new issue