@alba-cars/common-modules
Version:
A package containing DTOs, validation classes and common modules and interfaces for Alba Cars
436 lines (435 loc) • 17.2 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LeadGetDTO = exports.LeadOptions = exports.LeadFilter = exports.LeadCreateDTO = exports.LeadUpdateDTO = exports.LeadDTO = void 0;
const class_validator_1 = require("class-validator");
const lead_status_type_1 = require("../enum/lead_status_type");
const lead_source_status_types_1 = require("../enum/lead_source_status_types");
const lead_prefernce_dto_1 = require("./lead_prefernce_dto");
const lead_prefernce_dto_2 = require("./lead_prefernce_dto");
const class_transformer_1 = require("class-transformer");
const utilities_1 = require("../../../../global/utilities");
const global_1 = require("../../../../global");
class LeadDTO {
validate() {
const errors = (0, class_validator_1.validateSync)(this);
return errors.map((error) => { var _a; return Object.values((_a = error.constraints) !== null && _a !== void 0 ? _a : {}); }).flat();
}
static fromPlain(plain) {
return (0, class_transformer_1.plainToClass)(LeadDTO, plain);
}
toPlain() {
return (0, class_transformer_1.classToPlain)(this);
}
}
__decorate([
(0, class_validator_1.IsUUID)(),
__metadata("design:type", String)
], LeadDTO.prototype, "id", void 0);
__decorate([
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadDTO.prototype, "firstName", void 0);
__decorate([
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadDTO.prototype, "lastName", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadDTO.prototype, "email", void 0);
__decorate([
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadDTO.prototype, "phone", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadDTO.prototype, "alternatePhone", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadDTO.prototype, "address", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadDTO.prototype, "city", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadDTO.prototype, "state", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadDTO.prototype, "zipCode", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadDTO.prototype, "notes", void 0);
__decorate([
(0, class_validator_1.IsBoolean)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Boolean)
], LeadDTO.prototype, "isTestDriveScheduled", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Date)
], LeadDTO.prototype, "testDriveDate", void 0);
__decorate([
(0, class_validator_1.IsBoolean)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Boolean)
], LeadDTO.prototype, "isActive", void 0);
__decorate([
(0, class_validator_1.IsDate)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Date)
], LeadDTO.prototype, "lastContactedAt", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
__metadata("design:type", lead_prefernce_dto_1.LeadPreferencesDTO)
], LeadDTO.prototype, "preference", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Array)
], LeadDTO.prototype, "deposits", void 0);
exports.LeadDTO = LeadDTO;
class LeadUpdateDTO {
validate() {
const errors = (0, class_validator_1.validateSync)(this);
return errors.map((error) => { var _a; return Object.values((_a = error.constraints) !== null && _a !== void 0 ? _a : {}); }).flat();
}
static fromPlain(plain) {
return (0, class_transformer_1.plainToClass)(LeadUpdateDTO, plain);
}
toPlain() {
return (0, class_transformer_1.classToPlain)(this);
}
}
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.MinLength)(2),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "firstName", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.MinLength)(2),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "lastName", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "email", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.MinLength)(8),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "phone", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "alternatePhone", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "address", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "city", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "state", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "zipCode", void 0);
__decorate([
(0, class_validator_1.IsEnum)(lead_status_type_1.LeadStatus),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "status", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "notes", void 0);
__decorate([
(0, class_validator_1.IsEnum)(lead_source_status_types_1.LeadSource),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadUpdateDTO.prototype, "leadSource", void 0);
__decorate([
(0, class_validator_1.IsBoolean)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Boolean)
], LeadUpdateDTO.prototype, "isTestDriveScheduled", void 0);
__decorate([
(0, class_validator_1.IsDate)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Date)
], LeadUpdateDTO.prototype, "testDriveDate", void 0);
__decorate([
(0, class_validator_1.IsBoolean)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Boolean)
], LeadUpdateDTO.prototype, "isActive", void 0);
__decorate([
(0, class_validator_1.ValidateNested)(),
(0, class_transformer_1.Type)(() => lead_prefernce_dto_1.LeadPreferencesDTO),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", lead_prefernce_dto_1.LeadPreferencesDTO)
], LeadUpdateDTO.prototype, "preference", void 0);
exports.LeadUpdateDTO = LeadUpdateDTO;
class LeadCreateDTO {
validate() {
const errors = (0, class_validator_1.validateSync)(this);
return errors.map((error) => { var _a; return Object.values((_a = error.constraints) !== null && _a !== void 0 ? _a : {}); }).flat();
}
static fromPlain(plain) {
return (0, class_transformer_1.plainToClass)(LeadCreateDTO, plain);
}
toPlain() {
return (0, class_transformer_1.classToPlain)(this);
}
}
__decorate([
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "firstName", void 0);
__decorate([
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "lastName", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsEmail)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "email", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsPhoneNumber)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "phone", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "alternatePhone", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "address", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "city", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "state", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "country", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "zipCode", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "company", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "jobTitle", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "notes", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "source", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "status", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "assignedTo", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "leadType", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "leadStage", void 0);
__decorate([
(0, class_validator_1.IsNumber)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], LeadCreateDTO.prototype, "rating", void 0);
__decorate([
(0, class_validator_1.IsBoolean)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Boolean)
], LeadCreateDTO.prototype, "isQualified", void 0);
__decorate([
(0, class_validator_1.IsDate)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Date)
], LeadCreateDTO.prototype, "lastContactDate", void 0);
__decorate([
(0, class_validator_1.IsString)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", String)
], LeadCreateDTO.prototype, "lastContactType", void 0);
__decorate([
(0, class_validator_1.IsNumber)(),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", Number)
], LeadCreateDTO.prototype, "totalInteractions", void 0);
__decorate([
(0, class_validator_1.ValidateNested)(),
(0, class_transformer_1.Type)(() => lead_prefernce_dto_2.LeadPreferencesCreateDTO),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", lead_prefernce_dto_2.LeadPreferencesCreateDTO)
], LeadCreateDTO.prototype, "preference", void 0);
exports.LeadCreateDTO = LeadCreateDTO;
class LeadFilter extends utilities_1.TypedFilter {
}
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)({ each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "id", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)({ each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "firstName", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)({ each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "lastName", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)({ each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "email", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)({ each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "phone", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsEnum)(lead_status_type_1.LeadStatus, { each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "status", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsEnum)(lead_source_status_types_1.LeadSource, { each: true }),
__metadata("design:type", Object)
], LeadFilter.prototype, "leadSource", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsBoolean)(),
__metadata("design:type", Boolean)
], LeadFilter.prototype, "isTestDriveScheduled", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsBoolean)(),
__metadata("design:type", Boolean)
], LeadFilter.prototype, "isActive", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_validator_1.IsString)(),
__metadata("design:type", String)
], LeadFilter.prototype, "search", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_transformer_1.Type)(() => Date),
(0, class_validator_1.ValidateNested)(),
__metadata("design:type", Date)
], LeadFilter.prototype, "lastContactedAt", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_transformer_1.Type)(() => Date),
__metadata("design:type", Date)
], LeadFilter.prototype, "fromDate", void 0);
__decorate([
(0, class_validator_1.IsOptional)(),
(0, class_transformer_1.Type)(() => Date),
__metadata("design:type", Date)
], LeadFilter.prototype, "toDate", void 0);
exports.LeadFilter = LeadFilter;
class LeadOptions extends utilities_1.TypedOptions {
}
exports.LeadOptions = LeadOptions;
class LeadGetDTO extends global_1.BaseGetDTO {
static fromPlain(plain) {
return (0, class_transformer_1.plainToClass)(this, plain);
}
toPlain() {
return (0, class_transformer_1.classToPlain)(this);
}
}
__decorate([
(0, class_validator_1.ValidateNested)(),
(0, class_transformer_1.Type)(() => LeadFilter),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", LeadFilter)
], LeadGetDTO.prototype, "filters", void 0);
__decorate([
(0, class_validator_1.ValidateNested)(),
(0, class_transformer_1.Type)(() => LeadOptions),
(0, class_validator_1.IsOptional)(),
__metadata("design:type", LeadOptions)
], LeadGetDTO.prototype, "options", void 0);
exports.LeadGetDTO = LeadGetDTO;