@alba-cars/common-modules
Version:
A package containing DTOs, validation classes and common modules and interfaces for Alba Cars
107 lines (106 loc) • 3.61 kB
TypeScript
import { FinanceType } from "../enums/finance-type";
import { ReservationStatus } from "../enums/reservation-type";
import { Vehicle } from "../../../vehicle/data";
import { DateFilter, PaginationOptions } from "../../../../global";
import { LeadCreateDTO, LeadDTO } from "../../../lead/data/dto/lead_dto";
import { MarketingData } from "../../../../core";
export declare class CreateVehicleReservationDto {
leadId?: string;
newLead?: LeadCreateDTO;
vehicleId: string;
financeType: FinanceType;
depositAmount?: number;
depositPaymentMethod?: string;
totalAmount?: number;
notes?: string;
assignedSalesRepId?: string;
bankName?: string;
loanAmount?: number;
loanTenureMonths?: number;
interestRate?: number;
marketing?: MarketingData;
validate(): string[];
static fromPlain(plain: Record<string, unknown>): CreateVehicleReservationDto;
toPlain(): Record<string, unknown>;
}
export declare class VehicleReservationDto {
id: string;
leadId: LeadDTO;
vehicleId: string;
financeType: FinanceType;
depositAmount?: number;
depositPaymentMethod?: string;
totalAmount?: number;
notes?: string;
assignedSalesRepId?: string;
bankName?: string;
loanAmount?: number;
loanTenureMonths?: number;
interestRate?: number;
marketing?: MarketingData;
validate(): string[];
static fromPlain(plain: Record<string, unknown>): CreateVehicleReservationDto;
toPlain(): Record<string, unknown>;
}
export declare class VehicleReservationResponseDto {
id: string;
leadId: string;
vehicle: Vehicle;
status: ReservationStatus;
financeType: FinanceType;
depositAmount: number;
isDepositPaid: boolean;
totalAmount?: number;
createdAt: Date;
updatedAt: Date;
marketing?: MarketingData;
}
export declare class UpdateVehicleReservationDto {
status?: ReservationStatus;
depositAmount?: number;
depositPaymentMethod?: string;
isDepositPaid?: boolean;
totalAmount?: number;
bankName?: string;
loanAmount?: number;
loanTenureMonths?: number;
notes?: string;
cancellationReason?: string;
assignedSalesRepId?: string;
financeRejectionReason?: string;
financeApprovedAt?: Date;
financeRejectedAt?: Date;
cancelledAt?: Date;
isActive?: boolean;
validate(): string[];
static fromPlain(plain: Record<string, unknown>): UpdateVehicleReservationDto;
toPlain(): Record<string, unknown>;
}
export declare class VehicleReservationsOptions extends PaginationOptions {
sort?: {
field: string;
direction: "asc" | "desc";
};
static fromPlain(plain: Record<string, unknown>): GetVehicleReservationsFilterDto;
toPlain(): Record<string, unknown>;
}
export declare class GetVehicleReservationsDTO {
filter: GetVehicleReservationsFilterDto;
options: VehicleReservationsOptions;
static fromPlain(plain: Record<string, unknown>): GetVehicleReservationsDTO;
toPlain(): Record<string, unknown>;
}
export declare class GetVehicleReservationsFilterDto {
search?: string;
status?: ReservationStatus;
exceptStatus?: ReservationStatus;
financeTypes?: FinanceType[];
financeType?: FinanceType;
vehicleId?: string;
createdAt?: DateFilter;
leadId?: string;
isActive?: boolean;
validate(): string[];
static fromPlain(plain: Record<string, unknown>): GetVehicleReservationsFilterDto;
toPlain(): Record<string, unknown>;
}