Untitled
unknown
plain_text
2 years ago
28 kB
3
Indexable
/** * Constants related to user status (USER_STATUS) * * OK - This is when the user login is fine and user can proceed with any action on the platform. * LOCKED - This is when the user is blocked (for whatever reason) and not allowed login to the platform. * NO_TYPE - This is when a new user registration has happened and the type of the user has not been set in the DB. */ export const USER_STATUS = Object.freeze({ OK: "1001", LOCKED: "1002", NO_TYPE: "1999" }); /** * Constants related to job posting company status (COMPANY_STATUS) * * OK - This is when the user select hiring for client option and submit the company information form. * LOCKED - This is when the user select hiring for client option in company information form. */ export const COMPANY_STATUS = Object.freeze({ OK: "100001", LOCKED: "100002" }); /** * Constants related to job posting status (JOB_POSTING_STATUS) * Not to be confused with JOB_STATUS. Those are for the Job Status page of the candidate. * * DRAFT - This is when the job posting is in draft mode and not yet posted. * SUBMITTED_FOR_AUTO_REVIEW - This is when the job posting is posted. That would be submitted for review to be handled automatically. * SUBMITTED_FOR_MANUAL_REVIEW - This is when the job is submitted for manual review. For example, by flagging, etc. * OK_MANUAL_REVIEWED - This is when the job posting is fine and can be seen by the candidates. (This is when the job posting is manually reviewed by the Tokhimo team). * OK_AUTO_REVIEWED - This is when the job posting is fine and can be seen by the candidates. (This is when the job posting is auto reviewed by the Tokhimo AI). * FLAGGED - This is when the job posting is flagged by the feedback of the Candidates/AI and needs review. This reviw is always manual. * HIDDEN - This is when the job posting is hidden and can not be seen by the candidates. */ export const JOB_POSTING_STATUS = Object.freeze({ DRAFT: "101001", SUBMITTED_FOR_AUTO_REVIEW: "101002", SUBMITTED_FOR_MANUAL_REVIEW: "101003", OK_AUTO_REVIEWED: "101004", OK_MANUAL_REVIEWED: "101005", FLAGGED: "101006", HIDDEN: "101007" }); /** * Constants related to account types. (USER_TYPE) * * INDIVIDUAL - This is when type of the account is individual and can apply for company. * COMPANY - This is when type of the account is company and can create jobs and see other candidates. * OEM - This is for internal use, this allows Tokhimo to access any other user's things and do stuff on other user's behalf. * COMPANY_DEPENDENT - This is when a company has invited another person to manage posts on their behalf. (TBD on this later). * SUPER_USER - This is for Internal Tokhimo users. (They can access anything and bypass any restrictions). * NO_TYPE - This is for a new registration when the type of user is not decided. */ export const USER_TYPE = Object.freeze({ INDIVIDUAL: "2001", COMPANY: "2002", OEM: "2003", COMPANY_DEPENDENT: "2004", SUPER_USER: "2005", NO_TYPE: "2999" }); /** * Constants related to Contract Types for Job Experiences and Job Postings. (JOB_CONTRACT_TYPE) * This is always related to job (either postings or filling of experience). * * FULL_TIME_EMPLOYEE - For full time role * CONTRACT_EMPLOYEE - For Contract Role * TEMPORARY_EMPLOYEE - For a temporary Employee * INTERNSHIP - For an intern * PART_TIME_JOB - For Part Time role * OTHER - Anything else. */ export const JOB_CONTRACT_TYPE = Object.freeze({ FULL_TIME_EMPLOYEE: "3001", CONTRACT_EMPLOYEE: "3002", TEMPORARY_EMPLOYEE: "3003", INTERNSHIP: "3004", PART_TIME_JOB: "3005", OTHER: "3006" }); export const JOB_CONTRACT_TYPE_T_LABELS = Object.freeze({ [JOB_CONTRACT_TYPE.FULL_TIME_EMPLOYEE]: "t_job_experience_contract_type_full_time_employee", [JOB_CONTRACT_TYPE.CONTRACT_EMPLOYEE]: "t_job_experience_contract_type_contract_employee", [JOB_CONTRACT_TYPE.TEMPORARY_EMPLOYEE]: "t_job_experience_contract_type_temporary_employee", [JOB_CONTRACT_TYPE.INTERNSHIP]: "t_job_experience_contract_type_internship", [JOB_CONTRACT_TYPE.PART_TIME_JOB]: "t_job_experience_contract_type_part_time_job", [JOB_CONTRACT_TYPE.OTHER]: "t_job_experience_contract_type_other" }); /** * Constants related to language proficiencies. (LANGUAGE_PROFICIENCY) * This is used for both Job Postings and User Profile. * That is why this is a generic constant. * * NATIVE - Native Speaker. * CLOSE_TO_NATIVE - Almost Native, knows the language very well. * BUSINESS - Business Speaker. * DAILY_CONVERSATION - Has basic knowledge. * NONE - Does not know anything about that language. */ export const LANGUAGE_PROFICIENCY = Object.freeze({ NATIVE: "4001", BUSINESS: "4002", DAILY_CONVERSATION: "4003", NONE: "4004" }); export const LANGUAGE_PROFICIENCY_T_LABELS = Object.freeze({ [LANGUAGE_PROFICIENCY.NATIVE]: "t_language_proficiency_native", [LANGUAGE_PROFICIENCY.BUSINESS]: "t_language_proficiency_business", [LANGUAGE_PROFICIENCY.DAILY_CONVERSATION]: "t_language_proficiency_conversational", [LANGUAGE_PROFICIENCY.NONE]: "t_language_proficiency_none" }); /** * Constants related to account types. (INDIVIDUAL_USER_VISA_TYPE) * * VALUES - TODO */ export const INDIVIDUAL_USER_VISA_TYPE = Object.freeze({ ARTIST: "5001", BUSINESS_MANAGER: "5002", CULTURAL_ACTIVITIES: "5003", DEPENDANT: "5004", DIPLOMAT: "5005", DESIGNATED_ACTIVITIES: "5006", ENTERTAINER: "5007", HIGHLY_SKILLED_PROFESSIONAL: "5008", INSTRUCTOR: "5009", INTRA_COMPANY_TRANSFEREE: "5010", JOURNALIST: "5011", LEGAL_ACCOUNTING_SERVICES: "5012", LONG_TERM_RESIDENT: "5013", MEDICAL_SERVICES: "5014", NURSING_CARE: "5015", OFFICIAL: "5016", PERMANENT_RESIDENT: "5017", PROFESSOR: "5018", RELIGIOUS_ACTIVITIES: "5019", RESEARCHER: "5020", SPECIALIST: "5021", SKILLED_LABOR: "5022", SPOUSE_CHILD_JA_NATIONAL: "5023", SPOUSE_CHILD_PERMA_RESIDENT: "5024", SPECIFIED_SKILLED_WORKERS: "5025", STUDENT: "5026", TECHNICAL_INTERN_TRAINING: "5027", TEMPORARY_VISITOR: "5028", TRAINEE: "5029" }); export const INDIVIDUAL_USER_VISA_TYPE_T_LABELS = Object.freeze({ [INDIVIDUAL_USER_VISA_TYPE.ARTIST]: "t_user_visa_type_artist", [INDIVIDUAL_USER_VISA_TYPE.BUSINESS_MANAGER]: "t_user_visa_type_business_manager", [INDIVIDUAL_USER_VISA_TYPE.CULTURAL_ACTIVITIES]: "t_user_visa_type_cultural_activities", [INDIVIDUAL_USER_VISA_TYPE.DEPENDANT]: "t_user_visa_type_dependent", [INDIVIDUAL_USER_VISA_TYPE.DESIGNATED_ACTIVITIES]: "t_user_visa_type_designated_activities", [INDIVIDUAL_USER_VISA_TYPE.DIPLOMAT]: "t_user_visa_type_diplomat", [INDIVIDUAL_USER_VISA_TYPE.SPECIALIST]: "t_user_visa_type_engineer_specialist", [INDIVIDUAL_USER_VISA_TYPE.ENTERTAINER]: "t_user_visa_type_entertainer", [INDIVIDUAL_USER_VISA_TYPE.HIGHLY_SKILLED_PROFESSIONAL]: "t_user_visa_type_highly_skilled_professional", [INDIVIDUAL_USER_VISA_TYPE.INSTRUCTOR]: "t_user_visa_type_instructor", [INDIVIDUAL_USER_VISA_TYPE.INTRA_COMPANY_TRANSFEREE]: "t_user_visa_type_intra_company_transferee", [INDIVIDUAL_USER_VISA_TYPE.JOURNALIST]: "t_user_visa_type_journalist", [INDIVIDUAL_USER_VISA_TYPE.LEGAL_ACCOUNTING_SERVICES]: "t_user_visa_type_legal_accounting_services", [INDIVIDUAL_USER_VISA_TYPE.LONG_TERM_RESIDENT]: "t_user_visa_type_long_term_resident", [INDIVIDUAL_USER_VISA_TYPE.MEDICAL_SERVICES]: "t_user_visa_type_medical_services", [INDIVIDUAL_USER_VISA_TYPE.NURSING_CARE]: "t_user_visa_type_nursing_care", [INDIVIDUAL_USER_VISA_TYPE.OFFICIAL]: "t_user_visa_type_official", [INDIVIDUAL_USER_VISA_TYPE.PERMANENT_RESIDENT]: "t_user_visa_type_permanent_resident", [INDIVIDUAL_USER_VISA_TYPE.PROFESSOR]: "t_user_visa_type_professor", [INDIVIDUAL_USER_VISA_TYPE.RELIGIOUS_ACTIVITIES]: "t_user_visa_type_religious_activities", [INDIVIDUAL_USER_VISA_TYPE.RESEARCHER]: "t_user_visa_type_researcher", [INDIVIDUAL_USER_VISA_TYPE.SKILLED_LABOR]: "t_user_visa_type_skilled_labor", [INDIVIDUAL_USER_VISA_TYPE.SPECIFIED_SKILLED_WORKERS]: "t_user_visa_type_specified_skilled_worker", [INDIVIDUAL_USER_VISA_TYPE.SPOUSE_CHILD_JA_NATIONAL]: "t_user_visa_type_spouse_or_child_of_japanese_national", [INDIVIDUAL_USER_VISA_TYPE.SPOUSE_CHILD_PERMA_RESIDENT]: "t_user_visa_type_spouse_or_child_of_permanent_resident", [INDIVIDUAL_USER_VISA_TYPE.STUDENT]: "t_user_visa_type_student", [INDIVIDUAL_USER_VISA_TYPE.TECHNICAL_INTERN_TRAINING]: "t_user_visa_type_technical_intern_training", [INDIVIDUAL_USER_VISA_TYPE.TEMPORARY_VISITOR]: "t_user_visa_type_temporary_visitor", [INDIVIDUAL_USER_VISA_TYPE.TRAINEE]: "t_user_visa_type_trainee" }); /** * Constants related to account types. (INDIVIDUAL_USER_DEGREE_TYPE) * * VALUES - TODO */ export const INDIVIDUAL_USER_DEGREE_TYPE = Object.freeze({ ADVANCED_DIPLOMA: "6001", ASSOCIATE_DEGREE: "6002", BACHELOR: "6003", DIPLOMA: "6004", DOCTOR: "6005", EXCHANGE_STUDENT: "6006", JURIS_DOCTOR: "6007", MASTER: "6008", MASTER_OF_EDUCATION: "6009" }); export const INDIVIDUAL_USER_DEGREE_TYPE_T_LABELS = Object.freeze({ [INDIVIDUAL_USER_DEGREE_TYPE.ADVANCED_DIPLOMA]: "t_education_degree_type_advanced_diploma", [INDIVIDUAL_USER_DEGREE_TYPE.ASSOCIATE_DEGREE]: "t_education_degree_type_associate_degree", [INDIVIDUAL_USER_DEGREE_TYPE.BACHELOR]: "t_education_degree_type_bachelor", [INDIVIDUAL_USER_DEGREE_TYPE.DIPLOMA]: "t_education_degree_type_diploma", [INDIVIDUAL_USER_DEGREE_TYPE.DOCTOR]: "t_education_degree_type_doctor", [INDIVIDUAL_USER_DEGREE_TYPE.EXCHANGE_STUDENT]: "t_education_degree_type_exchange_student", [INDIVIDUAL_USER_DEGREE_TYPE.JURIS_DOCTOR]: "t_education_degree_type_juris_doctor", [INDIVIDUAL_USER_DEGREE_TYPE.MASTER]: "t_education_degree_type_master", [INDIVIDUAL_USER_DEGREE_TYPE.MASTER_OF_EDUCATION]: "t_education_degree_type_master_of_education" }); // TODO: Confirm about these values. // { // "dropdown_name": "Scale", // "options": [ // "~ Less than 50", // "50 ~ 100", // "100 ~ 300", // "300 ~ 500", // "500 ~ 1000", // "1000 ~ 3000", // "3000 ~ 5000", // "5000 or More" // ] // }, // { // "dropdown_name": "Job change", // "options": [ // "Soon", // "Within 3 Months", // "Within 6 Months", // "Within 1 Year", // "Not Decided Yet" // ] // } /** * Constants related to dialog(modal) actions. (DIALOG_ACTION) * * AGREE - To AGREE/CONFIRM and close dialog * CANCEL - To CANCEL and close dialog */ export const DIALOG_ACTION = Object.freeze({ AGREE: "AGREE", CANCEL: "CANCEL" }); /** * Constants related to job status. (JOB_STATUS_TAGS) * These constants are for frontend display and not for DB references. * For DB references, check - JOB_APPLICATION_INVITATION_ACTION_TYPE * FIXME: Update this documentation * * NEW - For new jobs * ACTIVE - For active jobs * APPLIED - For applied jobs * REVOKED - For revoked jobs * INVITED - For invited jobs * AGENCY - For jobs posted by agency */ export const JOB_STATUS_TAGS = Object.freeze({ NEW: "NEW", ACTIVE: "ACTIVE", AGENCY: "AGENCY" }); export const JOB_APPLICATION_INVITATION_ACTION_TYPE = Object.freeze({ INVITED: "7001", APPLIED: "7002", DECLINED: "7003", REVOKED: "7004", RESUME_PURCHASED: "7005" }); export const JOB_APPLICATION_INVITATION_ACTION_TYPE_T_LABELS = Object.freeze({ [JOB_APPLICATION_INVITATION_ACTION_TYPE.INVITED]: "t_general_invited", [JOB_APPLICATION_INVITATION_ACTION_TYPE.APPLIED]: "t_general_applied", [JOB_APPLICATION_INVITATION_ACTION_TYPE.DECLINED]: "t_general_declined", [JOB_APPLICATION_INVITATION_ACTION_TYPE.REVOKED]: "t_general_revoked", [JOB_APPLICATION_INVITATION_ACTION_TYPE.RESUME_PURCHASED]: "t_general_resume_purchased" }); /** * Constants related to Social Button. (SOCIAL_BUTTON_VARIANT) * * GOOGLE - For Google SSO * LINKEDIN - For LinkedIn SSO */ export const SOCIAL_BUTTON_VARIANT = Object.freeze({ GOOGLE: "GOOGLE", LINKEDIN: "LINKEDIN" }); // Ellipsis typography default values export const ELLIPSIS_TYPOGRAPHY_DEFAULT_VALUES = Object.freeze({ lineClamp: 4, color: "text.secondary" }); // Toast notification time export const TOAST_DEFAULT_HIDE_DURATION_MS = 3000; /** * Constants related to File Upload Requirements * * fileSize - For maximum permitted size of file (in MB) * fileFormat - For permitted formats */ export const CV_FILE_UPLOAD_CONFIG = Object.freeze({ fileSize: 6, fileFormat: ["pdf"] }); /** * Constants related to job details File Upload Requirements * * fileSize - For maximum permitted size of file (in MB) * fileFormat - For permitted formats */ export const JOB_DESCRIPTION_FILE_UPLOAD_CONFIG = Object.freeze({ fileSize: 6, fileFormat: ["pdf"] }); /** * Constants related to base avatar component * * fileSize - For maximum permitted size of file (in MB) * fileFormat - For permitted formats */ export const AVATAR_IMAGE_UPLOAD_CONFIG = Object.freeze({ fileSize: 5, fileFormat: ["png", "jpeg", "jpg", "gif"] }); /** * Constants related to Image Upload Requirements * * fileSize - For maximum permitted size of file (in MB) * fileFormat - For permitted formats */ export const PROFILE_IMAGE_UPLOAD_CONFIG = Object.freeze({ fileSize: 5, fileFormat: ["png", "jpeg", "jpg", "gif"] }); /** * Constants related to company logo * * fileSize - For maximum permitted size of file (in MB) * fileFormat - For permitted formats */ export const COMPANY_LOGO_UPLOAD_CONFIG = Object.freeze({ fileSize: 5, fileFormat: ["png", "jpeg", "jpg", "gif"] }); /** * Constants related to Environment Types * * LOCAL - For when the environment is locally served. * PREVIEW - For when the environment is serverd as PR Preview. * STAGE - For when the environment is served on the Staging Website. * TEST - For when the environment is served on the Test Pipeline. * PROD - For when the environment is served on the Prod Website. */ export const ENVIRONMENT = Object.freeze({ LOCAL: "LOCAL", PREVIEW: "PREVIEW", STAGE: "STAGE", TEST: "TEST", PROD: "PROD" }); // Constants related to number of companies user worked export const INDIVIDUAL_USER_NUMBER_OF_COMPANIES = Object.freeze({ ONE: "1", TWO: "2", THREE: "3", FOUR: "4", FIVE: "5", SIX: "6", SEVEN: "7", EIGHT: "8", NINE: "9", TEN: "10", GREATER_THAN_TEN: "9999" }); export const INDIVIDUAL_USER_NUMBER_OF_COMPANIES_T_LABELS = Object.freeze({ [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.ONE]: "t_profile_number_of_companies_one", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.TWO]: "t_profile_number_of_companies_two", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.THREE]: "t_profile_number_of_companies_three", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.FOUR]: "t_profile_number_of_companies_four", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.FIVE]: "t_profile_number_of_companies_five", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.SIX]: "t_profile_number_of_companies_six", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.SEVEN]: "t_profile_number_of_companies_seven", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.EIGHT]: "t_profile_number_of_companies_eight", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.NINE]: "t_profile_number_of_companies_nine", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.TEN]: "t_profile_number_of_companies_ten", [INDIVIDUAL_USER_NUMBER_OF_COMPANIES.GREATER_THAN_TEN]: "t_profile_number_of_companies_greater_than_ten" }); /** * Constants related to years of experience in job (YEARS_OF_EXPERIENCE) * This us used in both User's Job Skill setting and while posting a Job from company side. * That's why this is general YEARS_OF_EXPERIENCE and not INDIVIDUAL_USER_YEARS_OF_EXPERIENCE or JOB_YEARS_OF_EXPERIENCE. * FIXME: Add comment about the values. */ export const YEARS_OF_EXPERIENCE = Object.freeze({ LESS_THAN_ONE_YEAR: "1", ONE_YEAR: "2", TWO_YEARS: "3", THREE_YEARS: "4", FOUR_YEARS: "5", FIVE_YEARS: "6", SIX_YEARS: "7", SEVEN_YEARS: "8", EIGHT_YEARS: "9", NINE_YEARS: "10", TEN_YEARS: "11", GREATER_THAN_TEN_YEARS: "9999" }); export const YEARS_OF_EXPERIENCE_T_LABELS = Object.freeze({ [YEARS_OF_EXPERIENCE.LESS_THAN_ONE_YEAR]: "t_general_year_of_experience_less_than_one_year", [YEARS_OF_EXPERIENCE.ONE_YEAR]: "t_general_year_of_experience_one_year", [YEARS_OF_EXPERIENCE.TWO_YEARS]: "t_general_year_of_experience_two_years", [YEARS_OF_EXPERIENCE.THREE_YEARS]: "t_general_year_of_experience_three_years", [YEARS_OF_EXPERIENCE.FOUR_YEARS]: "t_general_year_of_experience_four_years", [YEARS_OF_EXPERIENCE.FIVE_YEARS]: "t_general_year_of_experience_five_years", [YEARS_OF_EXPERIENCE.SIX_YEARS]: "t_general_year_of_experience_six_years", [YEARS_OF_EXPERIENCE.SEVEN_YEARS]: "t_general_year_of_experience_seven_years", [YEARS_OF_EXPERIENCE.EIGHT_YEARS]: "t_general_year_of_experience_eight_years", [YEARS_OF_EXPERIENCE.NINE_YEARS]: "t_general_year_of_experience_nine_years", [YEARS_OF_EXPERIENCE.TEN_YEARS]: "t_general_year_of_experience_ten_years", [YEARS_OF_EXPERIENCE.GREATER_THAN_TEN_YEARS]: "t_general_year_of_experience_greater_than_ten_years" }); // FIXME: remove skills list once it will be finalized export const SKILLS_LIST = [ { key: "node", label: "Node" }, { key: "ab", label: "Ab" }, { key: "abc", label: "Abc" }, { key: "bcd", label: "Bcd" }, { key: "abp", label: "Abp" }, { key: "react", label: "React" }, { key: "js", label: "Javascript" } ]; // FIXME: remove/fix below comment once auto complete component fixed // export const SKILLS_LIST = [ // "Node", // "React", // "Javascript", // "Mongodb", // "Python", // "C", // "C++", // "PHP" // ].sort(); export const MAX_SKILLS = 50; export const MAX_WORK_EXPERIENCES = 20; export const MAX_EDUCATIONS = 10; export const MAX_CERTIFICATIONS = 20; export const MAX_LANGUAGES = 10; export const MAX_EXPECTED_SALARY = 50000000; // Constants related to file. // FIXME: Documentation will be done later. // Note: The Paths DO NOT contain trailing slashes. export const FILES_LOCATION_USER = "user"; export const FILES_LOCATION_TOKHIMO = "tokhimo"; export const FILES_LOCATION_INDIVIDUAL = `${FILES_LOCATION_USER}/individual`; export const FILES_LOCATION_COMPANY = `${FILES_LOCATION_USER}/company`; export const FILES_LOCATION_INDIVIDUAL_EN_CV = `${FILES_LOCATION_INDIVIDUAL}/resume/en-cv`; export const FILES_LOCATION_INDIVIDUAL_JA_CV = `${FILES_LOCATION_INDIVIDUAL}/resume/ja-cv`; export const FILES_LOCATION_INDIVIDUAL_JA_RIREKISHO = `${FILES_LOCATION_INDIVIDUAL}/resume/ja-rirekisho`; export const FILES_LOCATION_PROFILE_PICTURE = `${FILES_LOCATION_USER}/profile-picture`; export const FILES_LOCATION_COMPANY_LOGO = `${FILES_LOCATION_COMPANY}/logo`; export const FILES_LOCATION_JOB = `${FILES_LOCATION_COMPANY}/jobs`; export const FILES_LOCATION_JOB_ADDITIONAL_FILE_EN = `${FILES_LOCATION_JOB}/additional-files-en`; export const FILES_LOCATION_JOB_ADDITIONAL_FILE_JA = `${FILES_LOCATION_JOB}/additional-files-ja`; // Constants related to language test export const NONE_OPTION = Object.freeze({ NONE: "50000" }); export const NONE_OPTION_T_LABELS = Object.freeze({ [NONE_OPTION.NONE]: "t_test_none_option" }); export const JA_LANGUAGE_TEST = Object.freeze({ NONE: "9001", JLPT: "9002", NAT: "9003", BJT: "9004", J_TEST: "9005" }); export const JA_LANGUAGE_TEST_T_LABELS = Object.freeze({ [JA_LANGUAGE_TEST.NONE]: "t_ja_language_test_none", [JA_LANGUAGE_TEST.JLPT]: "t_ja_language_test_jlpt", [JA_LANGUAGE_TEST.NAT]: "t_ja_language_test_nat", [JA_LANGUAGE_TEST.BJT]: "t_ja_language_test_bjt", [JA_LANGUAGE_TEST.J_TEST]: "t_ja_language_test_j_test" }); // Constants related to language score export const JLPT_SCORE = Object.freeze({ N1: "10001", N2: "10002", N3: "10003", N4: "10004", N5: "10005" }); export const JLPT_SCORE_T_LABELS = Object.freeze({ [JLPT_SCORE.N1]: "t_jlpt_score_n1", [JLPT_SCORE.N2]: "t_jlpt_score_n2", [JLPT_SCORE.N3]: "t_jlpt_score_n3", [JLPT_SCORE.N4]: "t_jlpt_score_n4", [JLPT_SCORE.N5]: "t_jlpt_score_n5" }); export const NAT_SCORE = Object.freeze({ LEVEL_1: "20001", LEVEL_2: "20002", LEVEL_3: "20003", LEVEL_4: "20004", LEVEL_5: "20005" }); export const NAT_SCORE_T_LABELS = Object.freeze({ [NAT_SCORE.LEVEL_1]: "t_nat_score_level_1", [NAT_SCORE.LEVEL_2]: "t_nat_score_level_2", [NAT_SCORE.LEVEL_3]: "t_nat_score_level_3", [NAT_SCORE.LEVEL_4]: "t_nat_score_level_4", [NAT_SCORE.LEVEL_5]: "t_nat_score_level_5" }); export const BJT_SCORE = Object.freeze({ J1: "30001", J2: "30002", J3: "30003", J4: "30004", J5: "30005" }); export const BJT_SCORE_T_LABELS = Object.freeze({ [BJT_SCORE.J1]: "t_bjt_score_j1", [BJT_SCORE.J2]: "t_bjt_score_j2", [BJT_SCORE.J3]: "t_bjt_score_j3", [BJT_SCORE.J4]: "t_bjt_score_j4", [BJT_SCORE.J5]: "t_bjt_score_j5" }); export const J_TEST_SCORE = Object.freeze({ "A": "40001", "A+": "40002", "A-": "40003", "B": "40004", "B-": "40005", "C": "40006", "D": "40007", "E": "40008", "F": "40009", "G": "40010" }); export const J_TEST_SCORE_T_LABELS = Object.freeze({ [J_TEST_SCORE.A]: "t_j_test_score_a", [J_TEST_SCORE["A+"]]: "t_j_test_score_a+", [J_TEST_SCORE["A-"]]: "t_j_test_score_a-", [J_TEST_SCORE.B]: "t_j_test_score_b", [J_TEST_SCORE["B-"]]: "t_j_test_score_b-", [J_TEST_SCORE.C]: "t_j_test_score_c", [J_TEST_SCORE.D]: "t_j_test_score_d", [J_TEST_SCORE.E]: "t_j_test_score_e", [J_TEST_SCORE.F]: "t_j_test_score_f", [J_TEST_SCORE.G]: "t_j_test_score_g" }); export const INDIVIDUAL_USER_PROFILE_COMPLETION_TOTAL_PROGRESS_STEPS_EN_CV = 6; export const INDIVIDUAL_USER_PROFILE_COMPLETION_TOTAL_PROGRESS_STEPS_JA_CV = 6; export const INDIVIDUAL_USER_PROFILE_COMPLETION_TOTAL_PROGRESS_STEPS_JA_RIREKISHO = 1; /** * Constants related to State management of SignInSignUpDialog. * * SIGN_IN - Active screen is the email and password input screen for sign in. * SIGN_UP - Active screen is the email and password input screen for sign up. * TEST - Active screen for forgot password flow where user enters the email. * PROD - Active screen for forgot password flow where password recovery email has been sent. */ export const SIGN_IN_SIGN_UP_DIALOG_ACTIVE_CONTENT_KEY = Object.freeze({ SIGN_IN: "SIGN_IN", SIGN_UP: "SIGN_UP", RESET_PASSWORD_EMAIL_INPUT: "RESET_PASSWORD_EMAIL_INPUT", RESET_PASSWORD_EMAIL_SENT: "RESET_PASSWORD_EMAIL_SENT" }); /** * Email ID of the Portal to send from. */ export const FROM_EMAIL_NO_REPLY = "no-reply@jobs.tokhimo.com"; /** * Constants related to the job that has been posted with regards to the company of posting. * (JOB_POSTING_TYPE) * * SELF - The company has posted for itself. * CLIENT - The company is posting on behalf of a client. */ export const JOB_POSTING_TYPE = Object.freeze({ SELF: "50001", CLIENT: "50002" }); /** * Constants related to visa sponsorship for a job posting. * (JOB_POSTING_TYPE) * * YES - The company is providing visa sponsorship. * No - The company is not providing visa sponsorship. */ export const JOB_VISA_SPONSORSHIP_AVAILABLE = Object.freeze({ YES: "8001", NO: "8002" }); export const JOB_VISA_SPONSORSHIP_AVAILABLE_T_LABELS = Object.freeze({ [JOB_VISA_SPONSORSHIP_AVAILABLE.YES]: "t_general_yes", [JOB_VISA_SPONSORSHIP_AVAILABLE.NO]: "t_general_no" }); /** * Constants related to the frequency of salary deposit for a job posting. * (JOB_SALARY_DEPOSIT_FREQUENCY) * * HOURLY - Pay is per hour of work. * DAILY - Payment is at end of every day (8h/day). * WEEKLY - Payment is made at the end of every week. * BI_WEEKLY - Once every two weeks the payment is made. * MONTHLY - Salary is credited once every month. * QUARTERLY - Payment is made once every 3 months. * ANNUALLY - Cost to company on a per year basis. */ export const JOB_SALARY_DEPOSIT_FREQUENCY = Object.freeze({ HOURLY: "51001", DAILY: "51002", WEEKLY: "51003", BI_WEEKLY: "51004", MONTHLY: "51005", QUARTERLY: "51006", ANNUALLY: "51007" }); export const JOB_SALARY_DEPOSIT_FREQUENCY_T_LABELS = Object.freeze({ [JOB_SALARY_DEPOSIT_FREQUENCY.HOURLY]: "t_job_salary_frequency_hourly", [JOB_SALARY_DEPOSIT_FREQUENCY.DAILY]: "t_job_salary_frequency_daily", [JOB_SALARY_DEPOSIT_FREQUENCY.WEEKLY]: "t_job_salary_frequency_weekly", [JOB_SALARY_DEPOSIT_FREQUENCY.BI_WEEKLY]: "t_job_salary_frequency_bi_weekly", [JOB_SALARY_DEPOSIT_FREQUENCY.MONTHLY]: "t_job_salary_frequency_monthly", [JOB_SALARY_DEPOSIT_FREQUENCY.QUARTERLY]: "t_job_salary_frequency_quarterly", [JOB_SALARY_DEPOSIT_FREQUENCY.ANNUALLY]: "t_job_salary_frequency_annually" }); // Ref:- https://stackoverflow.com/a/63317462/13285590 export const PHONE_NO_REGEX = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/; // Ref:- https://stackoverflow.com/a/61691586/13745388 export const URL_REGEX = /^((https?):\/\/)?(www.)?[a-z0-9-]+(\.[a-z]{2,}){1,3}(#?\/?[a-zA-Z0-9#_]+)*\/?(\?[a-zA-Z0-9-_]+=[a-zA-Z0-9-%]+&?)?$/; // Ref:- https://stackoverflow.com/a/75454523/13285590 export const ALLOW_ONLY_NON_NEGATIVE_INTEGERS_REGEX = /[^0-9]/g; /** * Constants related to the type of remote work for a job posting. * (JOB_REMOTE_WORK_TYPE) * * FULLY_REMOTE - The job is fully remote. * PARTIALLY_REMOTE - The job is partially remote. * NOT_REMOTE - The job is not remote. */ export const JOB_REMOTE_WORK_TYPE = Object.freeze({ FULLY_REMOTE: "52001", PARTIALLY_REMOTE: "52002", NOT_REMOTE: "52003" }); export const JOB_REMOTE_WORK_TYPE_T_LABELS = Object.freeze({ [JOB_REMOTE_WORK_TYPE.FULLY_REMOTE]: "t_job_remote_work_fully_remote", [JOB_REMOTE_WORK_TYPE.PARTIALLY_REMOTE]: "t_job_remote_work_partially_remote", [JOB_REMOTE_WORK_TYPE.NOT_REMOTE]: "t_job_remote_work_not_remote" }); /** * Constant for ja and en alpha3 code (mostly used for first language[japanese] and second language[english] in language sections) */ export const JA_ALPHA3_CODE = "jpn"; export const EN_ALPHA3_CODE = "eng"; // Constant related to post a job steps // job information page (step 2) export const JOB_DESCRIPTION_FIELD_MAX_LENGTH = 5000; export const MUST_REQUIREMENTS_FIELD_MAX_LENGTH = 5000; // additional information page (step 6) export const OTHER_DETAILS_FIELD_MAX_LENGTH = 5000; /** * Constant for firebase collections */ export const FIRESTORE_COLLECTIONS = Object.freeze({ USERS: "users", COMPANIES: "companies", JOBS: "jobs", APPLICATIONS: "applications", META_COUNTRIES_CITIES: "meta_countries_cities" }); export const LOCATION_TYPE = Object.freeze({ COUNTRY: "60001", CITY: "60002" }); /** * Constant for Job Search Salary Filter. */ export const JOB_SEARCH_SALARY_FILTER = Object.freeze({ THREE_MILLION: "3000000", FIVE_MILLION: "5000000", SEVEN_MILLION: "7000000", TEN_MILLION: "10000000", FIFTEEN_MILLION: "15000000", TWENTY_MILLION: "20000000" }); export const JOB_SEARCH_SALARY_FILTER_T_LABELS = Object.freeze({ [JOB_SEARCH_SALARY_FILTER.THREE_MILLION]: "t_job_search_salary_filter_3_million", [JOB_SEARCH_SALARY_FILTER.FIVE_MILLION]: "t_job_search_salary_filter_5_million", [JOB_SEARCH_SALARY_FILTER.SEVEN_MILLION]: "t_job_search_salary_filter_7_million", [JOB_SEARCH_SALARY_FILTER.TEN_MILLION]: "t_job_search_salary_filter_10_million", [JOB_SEARCH_SALARY_FILTER.FIFTEEN_MILLION]: "t_job_search_salary_filter_15_million", [JOB_SEARCH_SALARY_FILTER.TWENTY_MILLION]: "t_job_search_salary_filter_20_million" }); /** * Constant for locales */ export const LOCALE = Object.freeze({ EN: "en-US", JA: "ja-JP" }); /** * Constant for pagination */ export const PAGINATION = Object.freeze({ ITEMS_PER_PAGE: 8 }); /** * Constant for job dates related tags */ export const JOB_NEW_TAG_LAST_UPDATED_DAY = 32; export const JOB_ACTIVE_TAG_COMPANY_LAST_LOGIN_DAY = 8;
Editor is loading...