@experts_hub/shared
Version:
Shared DTOs, interfaces, and utilities for experts hub applications
2,029 lines (1,910 loc) • 149 kB
text/typescript
import Transport from 'winston-transport';
import { MicroserviceOptions } from '@nestjs/microservices';
declare const AUTHENTICATION_PATTERN: {
handleValidateToken: string;
handleLogin: string;
handleLoginViaOtp: string;
handleRefreshToken: string;
handleLogout: string;
handleLogoutAll: string;
fetchSessions: string;
revokeSession: string;
handleForgotPassword: string;
handleResetPassword: string;
handleAdminResetPassword: string;
handleValidateResetPasswordToken: string;
handleVerifyPermission: string;
handleValidateEmail: string;
handleValidateEmailForLogin: string;
handleValidateMobile: string;
handleAdminLogin: string;
handleSetPassword: string;
signUpWithLinkedIn: string;
loginWithLinkedIn: string;
signUpWithGoogle: string;
loginWithGoogle: string;
validateOnboardingToken: string;
loginUsingUuid: string;
handleUserResetPasswordByAdmin: string;
};
declare enum ScopeEnum$3 {
ADMIN = "ADMIN",
SUB_ADMIN = "SUB_ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class LoginDto {
email: string;
password: string;
scope: ScopeEnum$3;
ip: string;
}
declare enum LoginViaOtpScopeEnum {
ADMIN = "ADMIN",
SUB_ADMIN = "SUB_ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class LoginViaOtpDto {
email: string;
otp: string;
scope: LoginViaOtpScopeEnum;
ip: string;
}
declare class RefreshDto {
refreshToken: string;
}
declare class LogoutDto {
refreshToken: string;
}
declare enum ScopeEnum$2 {
ADMIN = "ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class ForgotPasswordDto {
email: string;
scope: ScopeEnum$2;
}
declare enum ScopeEnum$1 {
ADMIN = "ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class ResetPasswordDto {
token: string;
password: string;
scope: ScopeEnum$1;
}
declare class SetPasswordDto {
token: string;
password: string;
}
declare enum ScopeEnum {
ADMIN = "ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class ResetPasswordTokenValidationDto {
token: string;
scope: ScopeEnum;
}
declare enum ScopeEmailEnumDto {
ADMIN = "ADMIN",
SUB_ADMIN = "SUB_ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class ValidateEmailDto {
email: string;
scope?: ScopeEmailEnumDto;
}
declare enum ScopeEmailForLoginEnumDto {
ADMIN = "ADMIN",
SUB_ADMIN = "SUB_ADMIN",
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class ValidateEmailForLoginDto {
email: string;
scope: ScopeEmailForLoginEnumDto;
}
declare class ValidateMobileDto {
mobileCode: string;
mobile: string;
}
declare class SocialAuthDto {
accessToken?: string;
refreshToken?: string;
profile?: any;
provider?: string;
providerId?: string;
}
declare class LoginUsingUuidDTO {
uuid: string;
}
declare class ResetUserPasswordByAdminDto {
uuid: string;
password: string;
}
declare const OTP_PATTERN: {
handleSendGuestOtp: string;
handleSendOtp: string;
handleSendOtpForLogin: string;
handleVerifyGuestOtp: string;
handleVerifyOtp: string;
};
declare enum SendGuestOtpPurposeEnum {
SIGN_UP = "SIGN_UP",
LOGIN = "LOGIN"
}
declare enum SendGuestOtpScopeEnum {
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class SendGuestOtpDto {
fullName: string;
target: string;
fallbackTarget: string;
purpose: SendGuestOtpPurposeEnum;
scope: SendGuestOtpScopeEnum;
}
declare enum SendLoginOtpPurposeEnum {
LOGIN = "LOGIN"
}
declare enum SendLoginOtpScopeEnum {
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class SendLoginOtpDto {
target: string;
purpose: SendLoginOtpPurposeEnum;
scope: SendLoginOtpScopeEnum;
}
declare enum VerifyGuestOtpPurposeEnum {
SIGN_UP = "SIGN_UP",
LOGIN = "LOGIN"
}
declare class VerifyGuestOtpDto {
target: string;
otp: string;
purpose: VerifyGuestOtpPurposeEnum;
}
declare class SendOtpDto {
userId: string;
purpose?: string;
}
declare class VerifyOtpDto {
userId: string;
otp: string;
purpose?: string;
}
declare const ONBOARDING_PATTERN: {
handleFreelancerAccountCreation: string;
handleFreelancerResumeUpload: string;
handleFreelancerDeveloperPreference: string;
handleFreelancerProfileQuestion: string;
handleFreelancerWorkShowcase: string;
verifyOnboardingToken: string;
handleClientAccountCreation: string;
handleClientProfileQuestion: string;
changeFreelancerPassword: string;
handleFetchClientProfileQuestion: string;
verifyClientOnboardingToken: string;
handleFetchFreelancerResume: string;
handleFreelancerResumeParsing: string;
initiateFreelancerMcqAssessment: string;
handleFetchAiAssessmentLink: string;
skipFreelancerAiAssessment: string;
initiateFreelancerAiAssessment: string;
captureAiAssessmentStatus: string;
handleFetchFreelancerProfileQuestion: string;
handleFetchFreelancerDetails: string;
};
declare class FreelancerCreateAccountDto {
fullName: string;
email: string;
mobileCode: string;
mobile: string;
countryISOCode: string;
onBoardedBy: string;
ip: string;
referralCode?: string;
}
declare class FreelancerUploadResumeDto {
uuid: string;
}
declare class FreelancerParseResumeDto {
uuid: string;
}
declare class FreelancerInitiateMcqAssessmentDto {
uuid: string;
}
declare class FreelancerSkipAiAssessmentDto {
uuid: string;
}
declare class FreelancerInitiateAiAssessmentDto {
uuid: string;
}
declare class FreelancerCaptureAiAssessmentStatusDto {
uuid: string;
assessmentId: string;
assessmentStatus: string;
iframeEventData: object;
}
declare class FreelancerDevelopmentPreferenceDto {
uuid: string;
developer: boolean;
}
declare enum ModeOfWorkEnum$2 {
ONSITE = "ONSITE",
REMOTE = "REMOTE",
HYBRID = "HYBRID",
BOTH = "BOTH"
}
declare enum NatureOfWorkEnum$2 {
FREELANCE = "FREELANCE"
}
declare class FreelancerProfileQuestionDto {
uuid: string;
modeOfWork: ModeOfWorkEnum$2;
natureOfWork: NatureOfWorkEnum$2;
numberOfHours: number;
isImmediateJoiner: boolean;
availabilityToJoin?: string;
currency: string;
expectedHourlyCompensation: number;
linkedinProfileLink: string;
kaggleProfileLink?: string | null;
githubProfileLink?: string | null;
stackOverflowProfileLink?: string | null;
portfolioLink?: string | null;
}
declare class FreelancerWorkShowcaseDto {
uuid: string;
linkedinProfileLink: string;
kaggleProfileLink?: string | null;
githubProfileLink?: string | null;
stackOverflowProfileLink?: string | null;
portfolioLink?: string | null;
}
declare class ClientProfileQuestionDto {
uuid: string;
question_slug: string;
answer: any;
numberOfHours?: number;
foundUsOnDetail?: string;
}
declare class ClientCreateAccountDto {
fullName: string;
email: string;
companyName: string;
onBoardedBy: string;
referralCode?: string;
}
declare class VerifyOnboardingTokenDto {
uuid: string;
}
declare const MAINTENANCE_PATTERN: {
truncateData: string;
};
declare const RESUME_PARSER_PATTERN: {
handleResumeParsing: string;
handleResumeParsingByUrl: string;
handleResumeDataProcessing: string;
handleCheckResumeEligibility: string;
};
declare const SUBADMIN_PATTERN: {
fetchSubAdmins: string;
exportUsersForGetStream: string;
handleDailyExport: string;
fetchDeletedSubAdmins: string;
fetchSubAdminDropdown: string;
findSubAdminById: string;
createSubAdmin: string;
updateSubAdminAccountStatus: string;
updateSubAdmin: string;
deleteSubAdmin: string;
fetchSubAdminCount: string;
};
declare enum AccountType$2 {
ADMIN = "ADMIN",
SUB_ADMIN = "SUB_ADMIN"
}
declare class CreateSubAdminDto {
userName: string;
firstName: string;
lastName: string;
accountType: AccountType$2;
email: string;
mobileCode: string;
mobile: string;
password: string;
roleIds: string;
}
declare abstract class BaseEntity {
id: number;
uuid: string;
createdAt: Date;
createdBy: number;
updatedAt: Date;
updatedBy: number;
isDeleted: boolean;
deletedBy: number;
deletedAt: Date;
}
declare class RefreshToken {
id: string;
userId: number;
tokenId: string;
deviceInfo: any;
isRevoked: boolean;
expiresAt: Date;
createdAt: Date;
updatedAt: Date;
user: User;
}
declare class SenseloafLog {
id: number;
userId: number;
type: string;
endpoint: string;
success: boolean;
request: any;
response: any;
errorMessage: string;
scope: string;
createdAt: Date;
user: User;
}
declare class Otp {
id: number;
userId: number;
otp: string;
otpPurpose: string;
target: string;
fallbackTarget: string;
expiresAt: Date;
isUsed: boolean;
isVerified: boolean;
resendCount: number;
createdAt: Date;
user: User;
}
declare enum KindOfHire {
FULLTIME = "FULLTIME",
PARTTIME = "PARTTIME",
BOTH = "BOTH",
HOURLY = "HOURLY",
FREELANCE = "FREELANCE",
FTE = "FTE"
}
declare enum ModeOfHire {
ONSITE = "ONSITE",
REMOTE = "REMOTE",
HYBRID = "HYBRID",
BOTH = "BOTH"
}
declare enum FromUsOn {
LINKEDIN = "LINKEDIN",
GOOGLE = "GOOGLE",
REFERRAL = "REFERRAL",
OTHER = "OTHER"
}
declare enum CompanyOnboardingStepEnum {
SIGN_UP = "SIGN_UP",
PROFILE_COMPLETION = "PROFILE_COMPLETION"
}
declare enum HiringCommissionTypeEnum {
PERCENTAGE = "PERCENTAGE",
AMOUNT = "AMOUNT"
}
declare class CompanyProfile extends BaseEntity {
userId: number;
user: User;
companyName: string;
bio: string;
webSite: string;
aboutCompany: string;
isServiceAgreementSigned: boolean;
skipServiceAgreement: boolean;
isJobPostingRestricted: boolean;
originalDocumentUrl: string;
serviceAgreementUrl: string;
serviceAggrementSignedOn: Date;
countryId: number;
country: Country;
stateId: number;
state: State;
cityId: number;
city: City;
companyAddress: string;
addressLine: string;
postalCode: string;
phoneNumber: string;
skills: string[];
requiredFreelancer: string;
kindOfHiring: KindOfHire;
numberOfHours: number;
modeOfHire: ModeOfHire;
foundUsOn: FromUsOn;
foundUsOnDetail: string;
onboardingStepCompleted: CompanyOnboardingStepEnum;
signaturePositions: any;
hiringCommisionTypeForFte: HiringCommissionTypeEnum;
hiringCommissionValueForFte: number;
markupPercentage: number;
rating: number;
signatureUrl: string;
}
declare class City extends BaseEntity {
countryId: number;
country: Country;
stateId: number;
state: State;
cityCode: string;
cityName: string;
isActive: boolean;
latitude: number;
longitude: number;
freelancerProfile: FreelancerProfile[];
companyProfile: CompanyProfile[];
}
declare class State extends BaseEntity {
countryId: number;
country: Country;
cities: City[];
stateName: string;
stateCode: string;
isActive: boolean;
centerLatitude: number;
centerLongitude: number;
freelancerProfile: FreelancerProfile[];
companyProfile: CompanyProfile[];
}
declare class Country extends BaseEntity {
countryName: string;
countryIsoCode: string;
countryPhoneCode: string;
currency: string;
isActive: boolean;
states: State[];
freelancerProfile: FreelancerProfile[];
companyProfile: CompanyProfile[];
}
declare enum NatureOfWork {
FULLTIME = "FULLTIME",
PARTTIME = "PARTTIME",
BOTH = "BOTH",
HOURLY = "HOURLY",
FREELANCE = "FREELANCE",
FTE = "FTE"
}
declare enum ModeOfWork {
ONSITE = "ONSITE",
REMOTE = "REMOTE",
HYBRID = "HYBRID",
BOTH = "BOTH"
}
declare enum OnboardingStepEnum {
SIGN_UP = "SIGN_UP",
UPLOAD_RESUME = "UPLOAD_RESUME",
PARSE_RESUME = "PARSE_RESUME",
MCQ_ASSESSMENT_INITIATED = "MCQ_ASSESSMENT_INITIATED",
MCQ_ASSESSMENT_COMPLETED = "MCQ_ASSESSMENT_COMPLETED",
AI_ASSESSMENT_INITIATED = "AI_ASSESSMENT_INITIATED",
AI_ASSESSMENT_COMPLETED = "AI_ASSESSMENT_COMPLETED",
CODING_CHALLENGE = "CODING_CHALLENGE",
PROFILE_COMPLETION = "PROFILE_COMPLETION"
}
declare enum McqStatusEnum {
NOT_ATTEMPTED = "NOT_ATTEMPTED",
PASSED = "PASSED",
FAILED = "FAILED"
}
declare enum AiAssessmentStatusEnum {
NOT_ATTEMPTED = "NOT_ATTEMPTED",
COMPELETED = "COMPELETED",
PASSED = "PASSED",
FAILED = "FAILED",
SKIPPED = "SKIPPED",
EXITED = "EXITED"
}
declare class FreelancerProfile extends BaseEntity {
userId: number;
user: User;
countryId: number;
country: Country;
stateId: number;
state: State;
cityId: number;
city: City;
talentId: string;
resumeUrl: string;
resumeUploadedOn: Date;
resumeParsedOn: Date;
resumeEligibility: string;
resumeScore: string;
mcqStatus: McqStatusEnum;
mcqScore: number;
mcqInitiatedOn: Date;
mcqCompletedOn: Date;
isEligibleForAiAssessment: boolean;
aiAssessmentStatus: AiAssessmentStatusEnum;
isDeveloper: boolean;
natureOfWork: NatureOfWork;
numberOfHours: number;
currency: string;
expectedHourlyCompensation: number;
expectedAnnualCompensation: number;
modeOfWork: ModeOfWork;
availabilityToJoin: string;
isImmediateJoiner: boolean;
linkedinProfileLink: string;
kaggleProfileLink: string;
githubProfileLink: string;
stackOverflowProfileLink: string;
portfolioLink: string;
onboardingStepCompleted: OnboardingStepEnum;
designation: string;
experience: string;
migratedExperience: string;
address: string;
addressLine: string;
postalCode: string;
about: string;
profileCompletedPercentage: Record<string, number>;
profileQuestionCompletedOn: Date;
profileCompletedOn: Date;
originalDocumentUrl: string;
isServiceAgreementSigned: boolean;
serviceAgreementUrl: string;
serviceAggrementSignedOn: Date;
isExpertshubVerified: boolean;
isFollowedOnLinkedIn: boolean;
signaturePositions: any;
rating: number;
signatureUrl: string;
}
declare enum JobSkillCategoryEnum {
GOOD_TO_HAVE = 0,
MUST_HAVE = 1
}
declare class JobSkill extends BaseEntity {
jobId: number;
job: Job;
skillName: string;
skillCategory: JobSkillCategoryEnum;
}
declare enum ApplicationStatusEnum {
PENDING = "PENDING",
SHORTLISTED = "SHORTLISTED",
INTERVIEW_IN_PROGRESS = "INTERVIEW_IN_PROGRESS",
INTERVIEWED = "INTERVIEWED",
OFFERED = "OFFERED",
HIRED = "HIRED",
REJECTED_BEFORE_INTERVIEW = "REJECTED_BEFORE_INTERVIEW",
REJECTED_IN_INTERVIEW = "REJECTED_IN_INTERVIEW",
REJECTED_AFTER_INTERVIEW = "REJECTED_AFTER_INTERVIEW",
NOT_SUITABLE = "NOT_SUITABLE",
WITHDRAWN = "WITHDRAWN"
}
declare class JobApplication extends BaseEntity {
jobApplicationId: string;
jobId: number;
job: Job;
userId: number;
user: User;
status: ApplicationStatusEnum;
appliedAt: Date;
shortlistedAt: Date;
interviewStartedAt: Date;
interviewCompletedAt: Date;
offeredAt: Date;
hiredAt: Date;
rejectedAt: Date;
rejectionReason: string;
withdrawnAt: Date;
withdrawnReason: string;
}
declare class InterviewSkill extends BaseEntity {
interviewId: number;
interview: Interview;
skill: string;
description: string;
isActive: boolean;
}
declare enum InterviewQuestionType {
AI = "AI",
CUSTOM = "CUSTOM"
}
declare class InterviewQuestion extends BaseEntity {
interviewId: number;
interview: Interview;
question: string;
concepts: string[];
questionType: InterviewQuestionType;
isActive: boolean;
}
declare enum InterviewInviteStatusEnum {
PENDING = "PENDING",
ACCEPTED = "ACCEPTED",
REJECTED = "REJECTED",
EXPIRED = "EXPIRED"
}
declare class InterviewInvite extends BaseEntity {
interviewId: number;
interview: Interview;
userId: number;
user: User;
jobId: number;
job: Job;
fullName: string;
email: string;
mobileCode: string;
mobile: string;
status: InterviewInviteStatusEnum;
sentAt: Date;
expiresAt: Date;
respondedAt?: Date;
token: string;
talentId: string;
}
declare enum AiInterviewRescheduleRequestStatusEnum {
PENDING = "PENDING",
APPROVED = "APPROVED",
REJECTED = "REJECTED"
}
declare class AiInterviewRescheduleRequest extends BaseEntity {
candidateId: number;
candidate: User;
clientId: number;
client: User;
aiInterviewId: number;
aiInterview: AiInterview;
interviewId: number;
rescheduledDate: Date;
status: AiInterviewRescheduleRequestStatusEnum;
clientRejectReason: string;
freelancerRequestReason: string;
}
declare enum AiInterviewStatusEnum {
NOT_ATTEMPTED = "NOT_ATTEMPTED",
ATTEMPTED = "ATTEMPTED",
PENDING = "PENDING",
ACTIVE = "ACTIVE",
IN_PROGRESS = "IN_PROGRESS",
IN_COMPLETE = "IN_COMPLETE",
COMPELETED = "COMPELETED",
PASSED = "PASSED",
FAILED = "FAILED",
EXPIRED = "EXPIRED",
POSTPONED = "POSTPONED",
RESCHEDULED = "RESCHEDULED",
EXITED = "EXITED"
}
declare enum ResultStatusEnum {
NOT_EVALUATED = "NOT_EVALUATED",
EVALUATING = "EVALUATING",
PASSED = "PASSED",
FAILED = "FAILED"
}
declare enum RecordingStatusEnum {
PROCESSING = "PROCESSING",
COMPLETED = "COMPLETED",
FAILED = "FAILED"
}
declare class AiInterview extends BaseEntity {
aiInterviewUniqueId: string;
candidateId: number;
candidate: User;
interviwerId: number;
interviwer: User;
interviewId: number;
interview: Interview;
inviteId: number;
candidateInterviewId: string;
candidateInterviewLink: string;
hasAttempted: boolean;
attemptedAt: Date;
completedAt: Date;
exitedAt: Date;
expiredAt: Date;
status: AiInterviewStatusEnum;
resultStatus: ResultStatusEnum;
recordingStatus: RecordingStatusEnum;
isRescheduled: boolean;
rescheduledAt: Date;
recordingLink: string;
iframeResponse: string;
interviewInsight: string;
isF2fInterviewScheduled: boolean;
isContractSent: boolean;
attempts: number;
rescheduleRequests: AiInterviewRescheduleRequest[];
}
declare enum F2fInterviewRescheduleRequestStatusEnum {
PENDING = "PENDING",
APPROVED = "APPROVED",
REJECTED = "REJECTED",
INPROGRESS = "INPROGRESS",
AUTOCANCELLED = "AUTOCANCELLED"
}
declare class F2fInterviewRescheduleRequest extends BaseEntity {
candidateId: number;
candidate: User;
f2fInterviewId: number;
f2fInterview: F2FInterview;
rescheduledDate: Date;
rescheduledSlot: string;
status: F2fInterviewRescheduleRequestStatusEnum;
clientRejectReason: string;
freelancerRequestReason: string;
}
declare enum F2fInterviewScheduleStatusEnum {
ACTIVE = "ACTIVE",
COMPELETED = "COMPELETED",
RESCHEDULED = "RESCHEDULED",
CANCELLED = "CANCELLED"
}
declare class F2FInterviewSchedule extends BaseEntity {
f2fInterviewId: number;
f2fInterview: F2FInterview;
eventId: string;
meetingZoomLink: string;
meetingId: string;
meetingPasscode: string;
rescheduleUrl: string;
cancelUrl: string;
status: F2fInterviewScheduleStatusEnum;
meetingStartTime: Date;
meetingEndTime: Date;
meetingEligibleStartTime: Date;
meetingEligibleExpiryTime: Date;
meetingVideoRecordingUrl: string;
meetingAudioRecordingUrl: string;
meetingTranscript: any;
meetingRecordings: any;
}
declare enum F2fInterviewStatusEnum {
DRAFTED = "DRAFTED",
NOT_ATTEMPTED = "NOT_ATTEMPTED",
ACTIVE = "ACTIVE",
COMPELETED = "COMPELETED",
EXPIRED = "EXPIRED",
POSTPONED = "POSTPONED",
RESCHEDULED = "RESCHEDULED",
EXITED = "EXITED",
CANCELLED = "CANCELLED"
}
declare class F2FInterview extends BaseEntity {
interviewUniqueId: string;
round: string;
jobId?: number;
job?: Job;
interviewId?: number;
interview?: Interview;
interviwerId: number;
interviwer: User;
candidateId: number;
candidate: User;
inviteeEmail: string;
inviteeName: string;
eventName: string;
status: F2fInterviewStatusEnum;
isRescheduled: boolean;
lastRescheduledAt: Date;
cancelledAt: Date;
cancelReason: string;
provider: string;
meetingStartedOn: Date;
meetingEndedOn: Date;
isContractSent: boolean;
feedback: string;
schedules: F2FInterviewSchedule[];
rescheduleRequests: F2fInterviewRescheduleRequest[];
}
declare enum InterviewStatusEnum {
DRAFTED = "DRAFTED",
PUBLISHED = "PUBLISHED",
INACTIVE = "INACTIVE",
DISCARDED = "DISCARDED",
ARCHIVED = "ARCHIVED"
}
declare class Interview extends BaseEntity {
interviewId: string;
userId: number;
user: User;
interviewName: string;
jobId: number;
job: Job;
interviewType: string;
interviewLanguage: string;
allowProctoring: boolean;
interviewDuration: string;
interviewValidityPeriod: string;
maximumAttemptsAllowed: string;
startInterviewPrompt: string;
endInterviewPrompt: string;
interviewTemplateId: string;
status: InterviewStatusEnum;
interviewSkills: InterviewSkill[];
interviewQuestions: InterviewQuestion[];
invites: InterviewInvite[];
aiInterviews: AiInterview[];
f2fInterviews: F2FInterview[];
}
declare enum ClientCandidatePreferenceEnum {
NOT_SUITABLE = "NOT_SUITABLE",
SHORTLISTED = "SHORTLISTED"
}
declare class ClientCandidatePreference extends BaseEntity {
clientId: number;
client: User;
candidateId: number;
candidate: User;
jobId?: number;
job?: Job;
recommendationId?: number;
recommendation?: JobRecommendation;
preference: ClientCandidatePreferenceEnum;
}
declare class JobRecommendation {
id: number;
jobId: number;
job: Job;
freelancerId: number;
clientId: number;
matchScore: number;
matchScoreSummary?: Record<string, any>;
matchingSkills: string[];
matchingSkillsCount: number;
requiredSkills: string[];
requiredSkillsCount: number;
lastCalculatedAt: Date;
preference: ClientCandidatePreference[];
}
declare class TimesheetLogs extends BaseEntity {
timesheetLineId: number;
timesheetLine: TimesheetLine;
startDate: Date;
endDate: Date;
startTime: string;
endTime: string;
workedHours: string;
taskId: number;
projectName?: string;
deliverable?: string;
taskName: string;
description: string;
}
declare enum TimesheetLineHistoryStatusEnum {
DRAFT = "DRAFT",
SEND = "SEND",
SEND_BACK = "SEND_BACK",
APPROVED = "APPROVED",
REJECTED = "REJECTED",
PAID = "PAID",
MISSING = "MISSING",
ACTIVE = "ACTIVE"
}
declare enum TimesheetSubmissionActionEnum {
SUBMITTED = "SUBMITTED",
RESUBMITTED = "RESUBMITTED",
SEND_BACK = "SEND_BACK",
APPROVED = "APPROVED",
REJECTED = "REJECTED",
PAID = "PAID"
}
declare class TimesheetLineHistory extends BaseEntity {
timesheetLineId: number;
timesheetLine: TimesheetLine;
changedBy: number;
previousStatus: TimesheetLineHistoryStatusEnum;
newStatus: TimesheetLineHistoryStatusEnum;
actionType: TimesheetSubmissionActionEnum;
remarks: string;
}
declare enum TimesheetLineStatusEnum {
DRAFT = "DRAFT",
SEND = "SEND",
SEND_BACK = "SEND_BACK",
APPROVED = "APPROVED",
REJECTED = "REJECTED",
PAID = "PAID",
MISSING = "MISSING",
ACTIVE = "ACTIVE"
}
declare class TimesheetLine extends BaseEntity {
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
timesheetLogs: TimesheetLogs[];
timesheetLineHistory: TimesheetLineHistory[];
uniqueId: string;
weekStartDate: Date;
weekEndDate: Date;
status: TimesheetLineStatusEnum;
weeklyHoursSum: string;
isInvoiceGenrated: boolean;
isInvoiceApproved: boolean;
invoice: Invoice[];
}
declare enum ContractSummaryStatusEnum {
PENDING = "PENDING",
ACTIVE = "ACTIVE",
COMPLETED = "COMPLETED",
CLOSED = "CLOSED"
}
declare enum ContractSummaryPreferredEngagementTypeEnum {
FREELANCE = "FREELANCE"
}
declare class ContractSummary extends BaseEntity {
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
startDate: Date;
endDate: Date;
actualStartDate: Date;
actualEndDate: Date;
duration: number;
contractValue: number;
invoicingCycle: string;
isMsaSigned: boolean;
isSowSigned: boolean;
isEscrowDeposited: boolean;
escrowDepositeAmount: number;
status: ContractSummaryStatusEnum;
preferredEngagementType?: ContractSummaryPreferredEngagementTypeEnum;
contracts: Contract[];
hiring: Hiring;
}
declare enum HiredFreelancerNatureOfWorkEnum {
FTE = "FTE",
FREELANCE = "FREELANCE"
}
declare class Hiring extends BaseEntity {
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
invoiceId?: number;
invoice?: Invoice;
contractSummaryId?: number;
contractSummary?: ContractSummary;
freelancerNatureOfWork: HiredFreelancerNatureOfWorkEnum;
isInvoiceGenrated: boolean;
isClosed?: boolean;
}
declare enum InvoiceTypeEnum {
WEEKLY = "WEEKLY",
MONTHLY = "MONTHLY",
FTE = "FTE"
}
declare enum InvoiceStatusEnum {
SUBMITTED = "SUBMITTED",
UNDER_REVIEW = "UNDER_REVIEW",
APPROVED = "APPROVED",
REJECTED = "REJECTED"
}
declare enum InvoicePaymentStatusEnum {
PENDING = "PENDING",
OVERDUE = "OVERDUE",
INTRANSACTION = "INTRANSACTION",
PAID = "PAID",
REFUNDED = "REFUNDED"
}
declare class Invoice extends BaseEntity {
timesheetLineId: number;
timesheetLine: TimesheetLine;
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
invoiceUniqueId: string;
issuedAt: Date;
dueAt: Date;
billingCycleFrom: Date;
billingCycleTo: Date;
billingHours: string;
hourlyRate: string;
billingAmount: string;
billingMarkUpAmount: string;
billingMarkUpPercentage: string;
freelancerBillingAmount: string;
freelancerCommissionPercentage: string;
freelancerCommissionAmount: string;
invoiceType: InvoiceTypeEnum;
status: InvoiceStatusEnum;
paymentStatus: InvoicePaymentStatusEnum;
clientInvoiceUrl: string;
freelancerInvoiceUrl: string;
escrowWalletTransaction?: EscrowWalletTransaction;
hiring?: Hiring;
}
declare enum EscrowWalletTransactionTypeEnum {
CR = "CR",
DR = "DR"
}
declare enum EscrowWalletTransactionForEnum {
CONTRACT = "CONTRACT",
INVOICE = "INVOICE"
}
declare class EscrowWalletTransaction extends BaseEntity {
escrowWalletId: number;
escrowWallet: EscrowWallet;
invoiceId?: number;
invoice?: Invoice;
amount: string;
escrowType: EscrowWalletTransactionTypeEnum;
description: string;
completedAt: Date;
escrowTransactionFor: EscrowWalletTransactionForEnum;
metaData: string;
}
declare class EscrowWallet extends BaseEntity {
jobId: number;
job?: Job;
clientId: number;
client?: User;
freelancerId: number;
freelancer?: User;
contractId?: number;
contract?: Contract;
escrowBalance: string;
metadata: Record<string, any>;
escrowWalletTransactions: EscrowWalletTransaction[];
}
declare enum ContractStatusEnum {
GENERATED = "GENERATED",
DRAFTED = "DRAFTED",
SENT = "SENT",
SIGNED = "SIGNED",
ACTIVE = "ACTIVE",
CANCELLED = "CANCELLED",
DISPUTED = "DISPUTED",
REJECTED = "REJECTED",
RENEWED = "RENEWED",
EXPIRED = "EXPIRED",
CLOSED = "CLOSED"
}
declare enum ContractTypeEnum {
NDA = "NDA",
WORK = "WORK",
SOW = "SOW",
MSA = "MSA",
CL_SOW = "CL_SOW",
FL_SOW = "FL_SOW"
}
declare class Contract extends BaseEntity {
contractUniqueId: string;
contractSummaryId: number;
contractSummary: ContractSummary;
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
duration: number;
status: ContractStatusEnum;
type: ContractTypeEnum;
invoicingCycle: string;
escrowDepositeAmount: number;
startDate: Date;
endDate: Date;
actualStartDate: Date;
actualEndDate: Date;
originalDocumentUrl: string;
contractDocumentUrl: string;
clientSignedAt: Date;
freelancerViewed: boolean;
freelancerViewedAt: Date;
freelancerSignedAt: Date;
rejectedAt: Date;
rejectReason: string;
resendCount: number;
isWorkContractSent: boolean;
isEscrowDeposited: boolean;
signaturePositions: any;
signatureUrl: string;
metaData: any;
escrowWallet: EscrowWallet;
}
declare enum TaskDeliverableTypeEnum {
REQUIRED = "REQUIRED",
NEED_TO_ADD = "NEED_TO_ADD",
OTHER = "OTHER"
}
declare class TaskDeliverable extends BaseEntity {
taskId: number;
task: Task;
name: string;
description: string;
type: TaskDeliverableTypeEnum;
}
declare enum TaskResourceTypeEnum {
GITHUB = "GITHUB",
JIRA_TASK = "JIRA_TASK",
API_DOCUMENTATION = "API_DOCUMENTATION"
}
declare class TaskResource extends BaseEntity {
taskId: number;
task: Task;
resourceType: TaskResourceTypeEnum;
name: string;
description: string;
type: TaskResourceTypeEnum;
url: string;
}
declare class TaskChecklistItem extends BaseEntity {
taskId: number;
task: Task;
name: string;
isChecked: boolean;
note: string;
}
declare enum TaskSubtaskStatusEnum {
PENDING = "PENDING",
IN_PROGRESS = "IN_PROGRESS",
NOT_YET_STARTED = "NOT_YET_STARTED",
COMPLETED = "COMPLETED",
CANCELLED = "CANCELLED"
}
declare class TaskSubtask extends BaseEntity {
taskId: number;
task: Task;
subtaskName: string;
dueDate: Date;
status: TaskSubtaskStatusEnum;
}
declare class TaskLogTime extends BaseEntity {
taskId: number;
task: Task;
startDate: Date;
startTime: string;
endDate: Date;
endTime: string;
logHours: string;
freelancerId: number;
jobId: number;
}
declare enum TaskQueryMessageUserTypeEnum {
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare class TaskQueryMessage extends BaseEntity {
taskQueryId: number;
taskQuery: TaskQuery;
senderUserId: number;
senderUser: User;
senderType: TaskQueryMessageUserTypeEnum;
message: string;
attachmentUrl: string;
attachmentType: string;
meta: any;
isRead: boolean;
readAt: Date;
}
declare enum TaskQueryUserTypeEnum {
CLIENT = "CLIENT",
FREELANCER = "FREELANCER"
}
declare enum TaskQueryCategoryEnum {
DEVELOPMENT_ISSUE = "DEVELOPMENT_ISSUE",
TESTING_ISSUE = "TESTING_ISSUE",
OTHER = "OTHER"
}
declare enum TaskQueryStatusEnum {
OPEN = "OPEN",
ANSWERED = "ANSWERED",
CLOSED = "CLOSED"
}
declare class TaskQuery extends BaseEntity {
taskId: number;
task: Task;
raisedByUserId: number;
raisedByUser: User;
raisedByType: TaskQueryUserTypeEnum;
assignedToUserId: number;
assignedToUser: User;
assignedToType: TaskQueryUserTypeEnum;
queryCategory: TaskQueryCategoryEnum;
subject: string;
description: string;
status: TaskQueryStatusEnum;
lastMessageAt: Date;
lastMessagePreview: string;
unreadCountClient: number;
unreadCountFreelancer: number;
messages: TaskQueryMessage[];
}
declare enum TaskPriorityEnum {
LOW = "LOW",
MEDIUM = "MEDIUM",
HIGH = "HIGH"
}
declare enum TaskStatusEnum {
DRAFTED = "DRAFTED",
SCHEDULED = "SCHEDULED",
IN_PROGRESS = "IN_PROGRESS",
SUBMITTED = "SUBMITTED",
COMPLETED = "COMPLETED",
CANCELLED = "CANCELLED"
}
declare class Task extends BaseEntity {
taskUniqueId: string;
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
taskName: string;
status: TaskStatusEnum;
priority: TaskPriorityEnum;
description: string;
dueDate: Date;
createdOn: Date;
estimateHours: number;
clientRemarks: string;
freelancerWorkNote: string;
deliverables: TaskDeliverable[];
resources: TaskResource[];
checklistItems: TaskChecklistItem[];
subtasks: TaskSubtask[];
timesheets: Timesheet[];
taskLogTimes: TaskLogTime[];
taskQueries: TaskQuery[];
}
declare enum TimesheetStatusEnum {
DRAFT = "DRAFT",
SEND = "SEND",
SEND_BACK = "SEND_BACK",
APPROVED = "APPROVED",
REJECTED = "REJECTED",
PAID = "PAID"
}
declare class Timesheet extends BaseEntity {
jobId: number;
job: Job;
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
startDate: Date;
endDate: Date;
startTime: string;
endTime: string;
workedHours: string;
taskId: number;
task: Task;
taskName: string;
description: string;
weekStartDate: Date;
weekEndDate: Date;
rejectedAt: Date;
submittedAt: Date;
resubmittedAt: Date;
approvedAt: Date;
status: TimesheetStatusEnum;
clientSendBackReason: string;
}
declare class JobLocation extends BaseEntity {
jobId: number;
job: Job;
countryId: number;
countryName: string;
country: Country;
stateId: number;
stateName: string;
state: State;
cityId: number;
cityName: string;
city: City;
locationWiseOpenings: number;
}
declare enum RatingTypeEnum {
FREELANCER_TO_CLIENT = "FREELANCER_TO_CLIENT",
CLIENT_TO_FREELANCER = "CLIENT_TO_FREELANCER"
}
declare class Rating extends BaseEntity {
reviewerId: number;
reviewer: User;
revieweeId: number;
reviewee: User;
jobId: number;
job: Job;
ratingType: RatingTypeEnum;
reviewerComment: string;
overAllExperience: number;
workQuality: number;
oneTimeDelivery: number;
understaning: number;
communication: number;
skillUtilized: number;
communicationClarity: number;
requirementsClarity: number;
responsiveness: number;
paymentPromptness: number;
responsibilitiesAndExpectations: number;
}
declare enum JobLocationEnum$1 {
ONSITE = "ONSITE",
REMOTE = "REMOTE",
HYBRID = "HYBRID",
BOTH = "BOTH"
}
declare enum typeOfExperienceEnum {
SINGLE = "SINGLE",
RANGE = "RANGE"
}
declare enum BillingCycleEnum {
WEEKLY = "WEEKLY",
DELIVERABLE = "DELIVERABLE"
}
declare enum TypeOfEmploymentEnum {
FULLTIME = "FULLTIME",
PARTTIME = "PARTTIME",
BOTH = "BOTH",
HOURLY = "HOURLY",
FREELANCE = "FREELANCE",
FTE = "FTE"
}
declare enum Step {
BASIC_INFORMATION = "BASIC_INFORMATION",
ADDITIONAL_COMMENTS = "ADDITIONAL_COMMENTS",
JOB_DESCRIPTION = "JOB_DESCRIPTION"
}
declare enum JobStatusEnum {
ACTIVE = "ACTIVE",
OPEN = "OPEN",
DRAFT = "DRAFT",
ONHOLD = "ONHOLD",
CLOSED = "CLOSED",
COMPLETED = "COMPLETED"
}
declare enum DurationTypeEnum {
DAY = "DAY",
WEEK = "WEEK",
MONTH = "MONTH",
YEAR = "YEAR"
}
declare class Job extends BaseEntity {
jobId: string;
userId: number;
user: User;
countryId: number;
country: Country;
stateId: number;
state: State;
cityId: number;
city: City;
jobRole: string;
jobRoleCanonicalName: string;
projectName: string;
note: string;
openings: number;
utilisedOpenings: number;
location: JobLocationEnum$1;
typeOfEmployment: TypeOfEmploymentEnum;
billingCycle: BillingCycleEnum;
academicQualification: string;
typeOfExperience: typeOfExperienceEnum;
yearsOfExperience: string;
yearsOfExperienceFrom: string;
yearsOfExperienceTo: string;
businessIndustry: string;
currency: string;
expectedSalaryFrom: number;
hideExpectedSalaryFrom: boolean;
expectedSalaryTo: number;
hideExpectedSalaryTo: boolean;
expectedAnnualBudgetFrom: number;
hideExpectedAnnualBudgetFrom: boolean;
expectedAnnualBudgetTo: number;
hideExpectedAnnualBudgetTo: boolean;
years: string;
months: string;
weeks: string;
days: string;
tentativeStartDate: Date;
tentativeEndDate: Date;
durationType: DurationTypeEnum;
duration: string;
numberOfHours: number;
description: string;
additionalComment: string;
onboardingTat: string;
candidateCommunicationSkills: string;
dealBreakers: any;
stepCompleted: Step;
status: JobStatusEnum;
viewedCount: number;
applicationCount: number;
isContractSigned: boolean;
isJobCreatedAsIs: boolean;
isInterviewCreated: boolean;
isJobCreatedViaAI: boolean;
interviewInvites: InterviewInvite[];
jobSkills: JobSkill[];
jobApplications: JobApplication[];
interviews: Interview[];
f2fInterviews: F2FInterview[];
recommendations: JobRecommendation[];
contractSummaries: ContractSummary[];
contracts: Contract[];
hirings: Hiring[];
escrowWallets: EscrowWallet[];
timesheets: Timesheet[];
timesheetLine: TimesheetLine[];
invoice: Invoice[];
clientCandidatePreferences: ClientCandidatePreference[];
jobLocations: JobLocation[];
ratings: Rating[];
tasks: Task[];
}
declare enum BankAccountTypeEnum {
PRIMARY = "PRIMARY",
SECONDARY = "SECONDARY"
}
declare enum BankAccountScopeEnum {
DOMESTIC = "DOMESTIC",
INTERNATIONAL = "INTERNATIONAL"
}
declare class BankDetail extends BaseEntity {
userId: number;
user: User;
name: string;
mobileCode: string;
mobile: string;
email: string;
address: string;
accountNumber: string;
bankName: string;
ifscCode: string;
branchName: string;
routingNo: string;
abaNumber: string;
iban: string;
accountType: BankAccountTypeEnum;
accountScope: BankAccountScopeEnum;
}
declare class SystemPreference extends BaseEntity {
userId: number;
user: User;
key: string;
value: boolean;
}
declare class FreelancerExperience extends BaseEntity {
userId: number;
user: User;
companyName: string;
designation: string;
jobDuration: string;
description: string;
}
declare class FreelancerEducation extends BaseEntity {
userId: number;
user: User;
degree: string;
university: string;
yearOfGraduation: string;
}
declare class FreelancerProject extends BaseEntity {
userId: number;
user: User;
projectName: string;
startDate: Date;
endDate: Date;
clientName: string;
gitLink: string;
description: string;
}
declare class FreelancerCaseStudy extends BaseEntity {
userId: number;
user: User;
projectName: string;
caseStudyLink: string;
description: string;
}
declare enum FreelancerSkillCategoryEnum {
GOOD_TO_HAVE = 0,
MUST_HAVE = 1
}
declare class FreelancerSkill extends BaseEntity {
userId: number;
user: User;
skillName: string;
skillCategory: FreelancerSkillCategoryEnum;
}
declare class FreelancerTool extends BaseEntity {
userId: number;
user: User;
toolName: string;
}
declare class FreelancerFramework extends BaseEntity {
userId: number;
user: User;
frameworkName: string;
}
declare enum AssessmentStatusEnum {
NOT_ATTEMPTED = "NOT_ATTEMPTED",
ACTIVE = "ACTIVE",
EVALUATING = "EVALUATING",
COMPELETED = "COMPELETED",
PASSED = "PASSED",
FAILED = "FAILED",
EXPIRED = "EXPIRED",
POSTPONED = "POSTPONED",
RESCHEDULED = "RESCHEDULED",
EXITED = "EXITED"
}
declare class FreelancerAssessment extends BaseEntity {
userId: number;
user: User;
interviewId: string;
interviewLink: string;
recordingLink: string;
iframeResponse: string;
interviewSummary: string;
score: number;
status: AssessmentStatusEnum;
taskId: string;
metaData: any;
}
declare enum DocumentType {
AADHAAR = "AADHAAR_CARD",
PASSPORT = "PASSPORT",
DRIVING_LICENSE = "DRIVING_LICENSE",
PAN_CARD = "PAN_CARD"
}
declare class FreelancerDeclaration extends BaseEntity {
userId: number;
user: User;
documentType: DocumentType;
frontDocumentUrl: string;
backDocumentUrl: string;
declarationAccepted: string;
digitalSignatureUrl: string;
}
declare class Permission extends BaseEntity {
name: string;
slug: string;
description: string;
module: string;
isActive: boolean;
}
declare class CompanyRolePermission extends BaseEntity {
companyRoleId: number;
companyRole: CompanyRole;
permissionId: number;
permission: Permission;
assignedBy?: number;
}
declare class CompanyRole extends BaseEntity {
userId: number;
user: User;
name: string;
slug: string;
description: string;
isActive: boolean;
rolePermissions: CompanyRolePermission[];
}
declare class CompanyMemberRole extends BaseEntity {
userId: number;
user: User;
role: CompanyRole;
companyRoleId: number;
assignedBy?: number;
}
declare class CompanyMember extends BaseEntity {
userId: number;
user: User;
firstName: string;
lastName: string;
email: string;
isEligibleForPlatformRecruiterAcknowledgement: boolean;
isPlatformRecruiterAcknowledgementAccepted: boolean;
platformRecruiterAcknowledgementAcceptedOn: Date;
}
declare enum AnswerTypeEnum {
CORRECT = "CORRECT",
ACCEPTABLE = "ACCEPTABLE",
ELIMINATE = "ELIMINATE"
}
declare class AssessmetQuestionOption extends BaseEntity {
questionId: number;
question: AssessmetQuestion;
text: string;
answerType: AnswerTypeEnum;
isActive: boolean;
selectedOptions: AssessmentAnswer[];
}
declare enum QuestionForEnum {
ASSESSMENT = "ASSESSMENT",
INTERVIEW = "INTERVIEW"
}
declare class AssessmetQuestion extends BaseEntity {
text: string;
questionFor: QuestionForEnum;
isActive: boolean;
candidateId: number;
candidate: User;
options: AssessmetQuestionOption[];
answers: AssessmentAnswer[];
}
declare enum SelectedAnswerTypeEnum {
CORRECT = "CORRECT",
ACCEPTABLE = "ACCEPTABLE",
ELIMINATE = "ELIMINATE"
}
declare class AssessmentAnswer extends BaseEntity {
userId: number;
user: User;
questionId: number;
question: AssessmetQuestion;
selectedOptionId: number;
option: AssessmetQuestionOption;
selectedAnswerType: SelectedAnswerTypeEnum;
score: number;
}
declare class CompanySkill extends BaseEntity {
userId: number;
user: User;
skillName: string;
}
declare class AdminPermission extends BaseEntity {
permissionName: string;
permissionSlug: string;
permissionDescription: string;
module: string;
isActive: boolean;
adminRole: AdminRolePermission[];
}
declare class AdminRolePermission extends BaseEntity {
roleId: number;
adminRole: AdminRole;
permissionId: number;
adminPermissions: AdminPermission;
}
declare class AdminRole extends BaseEntity {
roleName: string;
roleSlug: string;
roleDescription: string;
isActive: boolean;
adminRolePermission: AdminRolePermission[];
userRoles: AdminUserRole[];
}
declare class AdminUserRole extends BaseEntity {
userId: number;
user: User;
roleId: number;
adminRole: AdminRole;
}
declare class FreelancerResume extends BaseEntity {
userId: number;
user: User;
resumeData: string;
processedResumeData: string;
}
declare class Signature extends BaseEntity {
userId: number;
user: User;
signatureUrl: string;
}
declare enum DisputeStatusEnum {
OPEN = "OPEN",
IN_REVIEW = "IN_REVIEW",
PENDING_RESPONSE = "PENDING_RESPONSE",
UNDER_INVESTIGATION = "UNDER_INVESTIGATION",
RESOLVED = "RESOLVED",
CLOSED = "CLOSED",
ESCALATED = "ESCALATED",
CANCELLED = "CANCELLED",
REOPENED = "REOPENED"
}
declare enum InitiatorTypeEnum {
FREELANCER = "FREELANCER",
CLIENT = "CLIENT"
}
declare class Dispute extends BaseEntity {
clientId: number;
client: User;
freelancerId: number;
freelancer: User;
disputeUniqueId: string;
disputeType: string;
description: string;
comment: string;
status: DisputeStatusEnum;
initiatorType: DisputeStatusEnum;
initiatorId: number;
initiator: User;
respondentId: number;
respondent: User;
attachments: any[];
dynamicFields: Record<string, any>;
}
declare enum StripeTransactionTypeEnum {
ADD_FUNDS = "ADD_FUNDS",
TRANSFER = "TRANSFER",
WITHDRAW = "WITHDRAW",
INVOICE_PAYMENT = "INVOICE_PAYMENT",
REFUND = "REFUND"
}
declare enum StripeTransactionStatusEnum {
PENDING = "PENDING",
PROCESSING = "PROCESSING",
COMPLETED = "COMPLETED",
FAILED = "FAILED",
EXPIRED = "EXPIRED",
CANCELLED = "CANCELLED"
}
declare class StripeTransaction extends BaseEntity {
userId: number;
user: User;
stripeSessionId: string;
stripePaymentIntentId: string;
stripeChargeId: string;
stripeReceiptUrl: string;
stripeBalanceTransactionId: string;
stripePaymentMethod: string | null;
stripePaymentStatus: string | null;
type: StripeTransactionTypeEnum;
currency: string;
desiredDepositCents: number;
platformFeeCents: number;
taxCents: number | null;
estimatedStripeFee: number | null;
estimatedTotalCents: number | null;
actualStripeFee: number | null;
actualTotalPaidCents: number | null;
netReceivedCents: number | null;
description: string;
status: StripeTransactionStatusEnum;
checkoutSessionCompletedAt: Date;
completedAt: Date;
billingDetails: Record<string, any> | null;
paymentMethodDetails: Record<string, any> | null;
rawSessionPayload: Record<string, any> | null;
rawSessionResponse: Record<string, any> | null;
}
declare enum WalletTransactionTypeEnum {
CR = "CR",
DR = "DR"
}
declare enum WalletTransactionStatusEnum {
PENDING = "PENDING",
PROCESSING = "PROCESSING",
SUCCESS = "SUCCESS",
FAILED = "FAILED",
EXPIRED = "EXPIRED"
}
declare class WalletTransaction extends BaseEntity {
walletId: number;
wallet: Wallet;
fromUserId: number;
fromUser: User;
amount: number;
markUpAmount: number;
balanceBefore: number;
balanceAfter: number;
type: WalletTransactionTypeEnum;
status: WalletTransactionStatusEnum;
description: string;
completedAt: Date;
transactionFor: string;
metaData: string;
stripeTransactionId: number;
}
declare enum WalletAccountTypeEnum {
ADMIN = "ADMIN",
BUSINESS = "BUSINESS",
FREELANCER = "FREELANCER"
}
declare enum WalletOnboardingStatusEnum {
PENDING = "PENDING",
COMPLETED = "COMPLETED"
}
declare class Wallet extends BaseEntity {
userId: number;
user: User;
accountType: WalletAccountTypeEnum;
stripeAccountId: string;
stripeCustomerId: string;
walletBalance: string;
walletBalanceCents: number;
onboardingStatus: WalletOnboardingStatusEnum;
stripeMetadata: Record<string, any>;
walletTransactions: WalletTransaction[];
}
declare enum AssessmentRequestStatusEnum {
PENDING = "PENDING",
APPROVED = "APPROVED",
REJECTED = "REJECTED"
}
declare class FreelancerAssessmentRequest extends BaseEntity {
freelancerId: number;
freelancer: User;
approvedById: number;
approvedBy: User;
status: AssessmentRequestStatusEnum;
assessmentLink?: string;
}
declare class InAppNotification extends BaseEntity {
userId: number;
user: User;
event: string;
title: string;
message: string;
redirectUrl: string;
isRead: boolean;
metaData: any;
}
declare class UserSubscriptionPlanFeature extends BaseEntity {
userSubscriptionPlanId: number;
userSubscriptionPlan: UserSubscriptionPlan;
planFeatureId: number;
name: string;
slug: string;
tooltip: string | null;
sortOrder: number;
isActive: boolean;
}
declare enum UserSubscriptionPlanPricingBillingCycleEnum {
MONTHLY = "MONTHLY",
YEARLY = "YEARLY"
}
declare class UserSubscriptionPlanPricing extends BaseEntity {
userSubscriptionPlanId: number;
userSubscriptionPlan: UserSubscriptionPlan;
planPricingId: number;
billingCycle: UserSubscriptionPlanPricingBillingCycleEnum;
price: number;
originalPrice: number | null;
discountPct: number | null;
currency: string;
isFree: boolean;
stripePriceId: string | null;
isActive: boolean;
}
declare enum UserSubscriptionPlanTypeEnum {
FREELANCER = "FREELANCER",
BUSINESS = "BUSINESS"
}
declare class UserSubscriptionPlan extends BaseEntity {
userSubscriptionId: number;
userSubscription: UserSubscription;
planId: number;
name: string;
slug: string;
badgeLabel: string | null;
sortOrder: number;
isActive: boolean;
planType: UserSubscriptionPlanTypeEnum;
metadata: Record<string, unknown>;
userSubscriptionPlanFeatures: UserSubscriptionPlanFeature[];
userSubscriptionPlanPricing: UserSubscriptionPlanPricing[];
}
declare enum UserSubscriptionStatusEnum {
INCOMPLETE = "INCOMPLETE",
INCOMPLETE_EXPIRED = "INCOMPLETE_EXPIRED",
TRIALING = "TRIALING",
ACTIVE = "ACTIVE",
PAST_DUE = "PAST_DUE",
CANCELED = "CANCELED",
UNPAID = "UNPAID",
EXPIRED = "EXPIRED"
}
declare class UserSubscription extends BaseEntity {