@alba-cars/common-modules
Version:
A package containing DTOs, validation classes and common modules and interfaces for Alba Cars
145 lines (144 loc) • 4.36 kB
TypeScript
import { DateFilter, PaginationOptions } from "../../../../global";
import { Lead, User } from "../../../models";
import { MarketingData } from "../../../../core";
export declare enum SalaryType {
WPS = "wps",
BANK_TRANSFER = "bank_transfer",
CASH = "cash",
OTHER = "other"
}
export declare enum EmployeeCount {
LESS_THAN_10 = "less_than_10",
BETWEEN_10_50 = "between_10_50",
MORE_THAN_50 = "more_than_50"
}
export declare enum YesNo {
YES = "yes",
NO = "no"
}
export declare enum EligibilityStatus {
ELIGIBLE = 1,
NOT_ELIGIBLE = 0
}
export declare enum Status {
PENDING = "pending",
APPROVED = "approved",
REJECTED = "rejected"
}
export declare class FinanceEligibilityRequestCreateDTO {
vehicleId?: string;
makeId?: string;
modelId?: string;
fullName: string;
email?: string;
contactNumber: string;
currentSalary: number;
existingLoans: YesNo;
totalMonthlyInstallments: number;
hasCreditScore: YesNo;
totalCreditLimit: number;
salaryType: SalaryType;
previousDisputes: YesNo;
employeeCount?: EmployeeCount;
isCompanyOlderThanOneYear: boolean;
hasLandline?: YesNo;
documents?: string[];
marketing?: MarketingData;
static fromPlain(plain: Record<string, unknown>): FinanceEligibilityRequestCreateDTO;
toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityRequestUpdateDTO {
vehicleId?: string;
makeId?: string;
modelId?: string;
fullName?: string;
email?: string;
contactNumber?: string;
currentSalary?: number;
existingLoans?: YesNo;
totalMonthlyInstallments?: number;
hasCreditScore?: YesNo;
totalCreditLimit?: number;
salaryType?: SalaryType;
previousDisputes?: YesNo;
employeeCount?: EmployeeCount;
isCompanyOlderThanOneYear?: boolean;
hasLandline?: YesNo;
eligibility?: EligibilityStatus;
documents?: string[];
status?: "pending" | "approved" | "rejected";
rejectionReason?: string;
static fromPlain(plain: Record<string, unknown>): FinanceEligibilityRequestUpdateDTO;
toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityRequestResponseDTO {
id: string;
vehicleId?: string;
vehicle?: {
id: string;
make: string;
model: string;
year: number;
};
makeId?: string;
modelId?: string;
make?: {
id: string;
name: string;
};
model?: {
id: string;
name: string;
};
fullName: string;
email?: string;
contactNumber: string;
currentSalary: number;
existingLoans: YesNo;
totalMonthlyInstallments: number;
hasCreditScore: YesNo;
totalCreditLimit: number;
salaryType: SalaryType;
previousDisputes: YesNo;
employeeCount: EmployeeCount;
isCompanyOlderThanOneYear: boolean;
hasLandline: YesNo;
documents: string[];
eligibility: EligibilityStatus;
user?: User;
lead?: Lead;
status: Status;
rejectionReason?: string;
marketing?: MarketingData;
createdAt: Date;
updatedAt: Date;
static fromPlain(plain: Record<string, unknown>): FinanceEligibilityRequestResponseDTO;
toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityFilterDTO {
search?: string;
vehicleId?: string;
leadId?: string;
eligibility?: EligibilityStatus;
salaryType?: SalaryType;
isActive?: boolean;
createdAt?: DateFilter;
marketing?: MarketingData;
static fromPlain(plain: Record<string, unknown>): FinanceEligibilityFilterDTO;
toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityOptionsDTO extends PaginationOptions {
sort?: {
field: string;
direction: "asc" | "desc";
};
static fromPlain(plain: Record<string, unknown>): FinanceEligibilityFilterDTO;
toPlain(): Record<string, unknown>;
}
export declare class FinanceEligibilityFetchDTO {
filter: FinanceEligibilityFilterDTO;
options: FinanceEligibilityOptionsDTO;
validate(): string[];
static fromPlain(plain: Record<string, unknown>): FinanceEligibilityFetchDTO;
toPlain(): Record<string, unknown>;
}