@alba-cars/common-modules
Version:
A package containing DTOs, validation classes and common modules and interfaces for Alba Cars
39 lines (38 loc) • 1.54 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetSimilarVehiclesDTO = void 0;
class GetSimilarVehiclesDTO {
static fromPlain(data) {
const dto = new GetSimilarVehiclesDTO();
dto.vehicleId = data.vehicleId;
dto.priceRangePercentage = data.priceRange;
dto.limit = data.limit;
dto.options = data.options;
dto.makeId = data.makeId;
dto.modelId = data.modelId;
return dto;
}
validate() {
const errors = [];
if (!this.vehicleId) {
errors.push("Vehicle ID is required");
}
if (this.priceRangePercentage !== undefined &&
(isNaN(this.priceRangePercentage) || this.priceRangePercentage < 0 || this.priceRangePercentage > 100)) {
errors.push("Price range percentage must be a positive number between 0 and 100");
}
if (this.mileageRange !== undefined &&
(isNaN(this.mileageRange) || this.mileageRange < 0)) {
errors.push("Mileage range must be a positive number");
}
if (this.yearRange !== undefined &&
(isNaN(this.yearRange) || this.yearRange < 0)) {
errors.push("Year range must be a positive number");
}
if (this.limit !== undefined && (isNaN(this.limit) || this.limit < 1)) {
errors.push("Limit must be a positive number");
}
return errors;
}
}
exports.GetSimilarVehiclesDTO = GetSimilarVehiclesDTO;