323 lines
8.5 KiB
TypeScript
323 lines
8.5 KiB
TypeScript
export type UserRole = 'admin' | 'owner'
|
|
|
|
export type UserType = 'company' | 'backoffice' | 'candidate'
|
|
|
|
export type LanguageLevel =
|
|
| 'NONE'
|
|
| 'A_ONE'
|
|
| 'A_TWO'
|
|
| 'B_ONE'
|
|
| 'B_TWO'
|
|
| 'C_ONE'
|
|
| 'C_TWO'
|
|
|
|
export type CandidateDocumentType =
|
|
| 'education'
|
|
| 'license'
|
|
| 'language'
|
|
| 'work_experience'
|
|
| 'profile_image'
|
|
|
|
export type DocumentStatus = 'Missing' | 'Invalid' | 'Verified' | 'Unverified'
|
|
|
|
export type ApplicantStatus =
|
|
| 'Initial'
|
|
| 'Invalid'
|
|
| 'Pending'
|
|
| 'Complete'
|
|
| 'Failed'
|
|
|
|
export type NurseRecognitionGermany =
|
|
| 'nurse'
|
|
| 'assistant_nurse'
|
|
| 'nursing_helper'
|
|
|
|
export type NurseRecognitionHomeCountry =
|
|
| 'nurse'
|
|
| 'assistant_nurse'
|
|
| 'nursing_helper'
|
|
| 'none'
|
|
|
|
export type RecognitionLikelihood = 'low' | 'medium' | 'high'
|
|
|
|
export type ProfessionalRecognitionStatus =
|
|
| 'NOT_STARTED'
|
|
| 'IN_PROGRESS'
|
|
| 'COMPLETED'
|
|
|
|
export type LanguageCode =
|
|
| 'en'
|
|
| 'ar'
|
|
| 'bs'
|
|
| 'fil'
|
|
| 'hi'
|
|
| 'es'
|
|
| 'tr'
|
|
| 'uk'
|
|
| 'vi'
|
|
|
|
export type GermanState =
|
|
| 'Baden-Württemberg'
|
|
| 'Bayern'
|
|
| 'Berlin'
|
|
| 'Brandenburg'
|
|
| 'Bremen'
|
|
| 'Hamburg'
|
|
| 'Hessen'
|
|
| 'Mecklenburg-Vorpommern'
|
|
| 'Niedersachsen'
|
|
| 'Nordrhein-Westfalen'
|
|
| 'Rheinland-Pfalz'
|
|
| 'Saarland'
|
|
| 'Sachsen'
|
|
| 'Sachsen-Anhalt'
|
|
| 'Schleswig-Holstein'
|
|
| 'Thüringen'
|
|
|
|
export type RecognitionDossierStatus =
|
|
| 'draft'
|
|
| 'blocked'
|
|
| 'ready'
|
|
| 'generating'
|
|
| 'generated'
|
|
| 'unsupported'
|
|
| 'failed'
|
|
|
|
export type RecognitionDossierDocumentCategory =
|
|
| 'passport'
|
|
| 'birth_certificate'
|
|
| 'name_change_proof'
|
|
| 'employer_intent'
|
|
| 'medical_certificate'
|
|
| 'police_clearance'
|
|
| 'translation'
|
|
| 'authority_form'
|
|
| 'power_of_attorney'
|
|
| 'waiver_form'
|
|
| 'other'
|
|
|
|
export interface Candidate {
|
|
candidateId: string
|
|
email: string
|
|
name: string
|
|
stateWorkPreference: GermanState[] | null
|
|
joinTalentPool: boolean | null
|
|
livingInGermany: boolean | null
|
|
euPassport: boolean | null
|
|
countryEducation: string | null
|
|
licenseProvided: boolean | null
|
|
languageCertificateProvided: boolean | null
|
|
languageSelfAssessmentLevel: LanguageLevel | null
|
|
submittedAt: Date | null
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
phone: string | null
|
|
dateOfBirth: Date | null
|
|
currentResidence: string | null
|
|
qualificationStatusHomeCountry: NurseRecognitionHomeCountry | null
|
|
qualificationStatusGermany: NurseRecognitionGermany | null
|
|
licenseMandatory: boolean | null
|
|
durationRequirementsMet: boolean | null
|
|
status: ApplicantStatus
|
|
incompleteReminderSentAt: Date | null
|
|
recognitionLikelihood: RecognitionLikelihood | null
|
|
professionalRecognitionStatus: ProfessionalRecognitionStatus | null
|
|
nationality: string | null
|
|
languagesSpoken: LanguageCode[] | null
|
|
statusChangedAt: Date
|
|
lifecycleNotifications: unknown
|
|
analysisLastRunAt: Date | null
|
|
analysisInputFingerprint: string | null
|
|
invalidatedAt: Date | null
|
|
reuploadRequestedAt: Date | null
|
|
reuploadedAt: Date | null
|
|
failedPurgedAt: Date | null
|
|
}
|
|
|
|
export interface CandidateDocument {
|
|
documentId: string
|
|
candidateId: string
|
|
category: CandidateDocumentType
|
|
title: string | null
|
|
note: string | null
|
|
filePath: string
|
|
fileName: string
|
|
fileSize: number | null
|
|
mimeType: string | null
|
|
uploaded: boolean | null
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
ocrText: string | null
|
|
ocrModel:
|
|
| 'tesseract'
|
|
| 'azure_cognitive'
|
|
| 'aws_textract'
|
|
| 'google_vision'
|
|
| 'manual_entry'
|
|
| null
|
|
ocrStartedAt: Date | null
|
|
ocrEndedAt: Date | null
|
|
documentStatus: DocumentStatus
|
|
}
|
|
|
|
export interface CandidateEducation {
|
|
educationId: string
|
|
candidateId: string
|
|
institution: string | null
|
|
country: string | null
|
|
program: string | null
|
|
completionDate: Date | null
|
|
aiInstitution: string | null
|
|
aiCountry: string | null
|
|
aiProgram: string | null
|
|
aiCompletionDate: Date | null
|
|
aiExtractedBy:
|
|
| 'gpt-five'
|
|
| 'claude-three-opus'
|
|
| 'claude-three-sonnet'
|
|
| 'claude-three-haiku'
|
|
| 'gemini-pro'
|
|
| null
|
|
aiExtractionDate: Date | null
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
nursingRelatedDegree: boolean | null
|
|
accreditedUniversity: boolean | null
|
|
accreditedStudyProgram: boolean | null
|
|
aiNursingRelatedDegree: boolean | null
|
|
aiAccreditedUniversity: boolean | null
|
|
aiAccreditedStudyProgram: boolean | null
|
|
hasTheory: boolean | null
|
|
hasPractice: boolean | null
|
|
durationHours: number | null
|
|
isNursingFocus: boolean | null
|
|
aiHasTheory: boolean | null
|
|
aiHasPractice: boolean | null
|
|
aiDurationHours: number | null
|
|
aiIsNursingFocus: boolean | null
|
|
}
|
|
|
|
export interface CandidateExperience {
|
|
experienceId: string
|
|
candidateId: string
|
|
employerName: string | null
|
|
roleTitle: string | null
|
|
department: string | null
|
|
startDate: Date | null
|
|
endDate: Date | null
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
country: string | null
|
|
city: string | null
|
|
facilityType: string | null
|
|
}
|
|
|
|
export interface CandidateLanguage {
|
|
languageId: string
|
|
candidateId: string
|
|
level: LanguageLevel | null
|
|
issuingBody: string | null
|
|
issueDate: Date | null
|
|
certifiedSkills: string | null
|
|
aiLevel: LanguageLevel | null
|
|
aiIssuingBody: string | null
|
|
aiIssueDate: Date | null
|
|
aiCertifiedSkills: string | null
|
|
aiExtractedBy:
|
|
| 'gpt-five'
|
|
| 'claude-three-opus'
|
|
| 'claude-three-sonnet'
|
|
| 'claude-three-haiku'
|
|
| 'gemini-pro'
|
|
| null
|
|
aiExtractionDate: Date | null
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
}
|
|
|
|
export interface CandidateLicense {
|
|
licenseId: string
|
|
candidateId: string
|
|
licenseNumber: string | null
|
|
issuingAuthority: string | null
|
|
issueDate: Date | null
|
|
expiryDate: Date | null
|
|
status: string | null
|
|
licenseType: string | null
|
|
aiLicenseNumber: string | null
|
|
aiIssuingAuthority: string | null
|
|
aiIssueDate: Date | null
|
|
aiExpiryDate: Date | null
|
|
aiStatus: string | null
|
|
aiLicenseType: string | null
|
|
aiExtractedBy:
|
|
| 'gpt-five'
|
|
| 'claude-three-opus'
|
|
| 'claude-three-sonnet'
|
|
| 'claude-three-haiku'
|
|
| 'gemini-pro'
|
|
| null
|
|
aiExtractionDate: Date | null
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
}
|
|
|
|
export interface RecognitionDossier {
|
|
dossierId: string
|
|
candidateId: string
|
|
targetState: GermanState
|
|
targetProfession: NurseRecognitionGermany
|
|
status: RecognitionDossierStatus
|
|
rulesVersion: string | null
|
|
inputFingerprint: string | null
|
|
generatedAt: Date | null
|
|
packageFilePath: string | null
|
|
submissionGuideJson: unknown
|
|
checklistJson: unknown
|
|
blockingIssuesJson: unknown
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
}
|
|
|
|
export interface RecognitionDossierDocument {
|
|
documentId: string
|
|
dossierId: string
|
|
candidateId: string
|
|
category: RecognitionDossierDocumentCategory
|
|
title: string | null
|
|
note: string | null
|
|
filePath: string
|
|
fileName: string
|
|
fileSize: number | null
|
|
mimeType: string | null
|
|
uploaded: boolean | null
|
|
documentStatus: DocumentStatus
|
|
createdAt: Date | null
|
|
lastUpdatedAt: Date | null
|
|
}
|
|
|
|
export declare namespace DB {
|
|
export type Candidate = import('./db.js').Candidate
|
|
export type CandidateDocument = import('./db.js').CandidateDocument
|
|
export type CandidateEducation = import('./db.js').CandidateEducation
|
|
export type CandidateExperience = import('./db.js').CandidateExperience
|
|
export type CandidateLanguage = import('./db.js').CandidateLanguage
|
|
export type CandidateLicense = import('./db.js').CandidateLicense
|
|
export type RecognitionDossier = import('./db.js').RecognitionDossier
|
|
export type RecognitionDossierDocument = import('./db.js').RecognitionDossierDocument
|
|
export type UserRole = import('./db.js').UserRole
|
|
export type UserType = import('./db.js').UserType
|
|
export type LanguageLevel = import('./db.js').LanguageLevel
|
|
export type CandidateDocumentType = import('./db.js').CandidateDocumentType
|
|
export type DocumentStatus = import('./db.js').DocumentStatus
|
|
export type ApplicantStatus = import('./db.js').ApplicantStatus
|
|
export type NurseRecognitionGermany = import('./db.js').NurseRecognitionGermany
|
|
export type NurseRecognitionHomeCountry = import('./db.js').NurseRecognitionHomeCountry
|
|
export type RecognitionLikelihood = import('./db.js').RecognitionLikelihood
|
|
export type ProfessionalRecognitionStatus = import('./db.js').ProfessionalRecognitionStatus
|
|
export type LanguageCode = import('./db.js').LanguageCode
|
|
export type GermanState = import('./db.js').GermanState
|
|
export type RecognitionDossierStatus = import('./db.js').RecognitionDossierStatus
|
|
export type RecognitionDossierDocumentCategory = import('./db.js').RecognitionDossierDocumentCategory
|
|
}
|