UNPKG

@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
"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;