UNPKG

@alba-cars/common-modules

Version:

A package containing DTOs, validation classes and common modules and interfaces for Alba Cars

614 lines (613 loc) 24.4 kB
"use strict"; 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.SalesAgentUpdateDTO = exports.SalesAgentCreateDTO = exports.SalesAgentResponseDTO = exports.SalesAgentGetDTO = exports.SalesAgentOptionsDTO = exports.SalesAgentFilterDTO = exports.Languages = exports.TeamCategory = exports.Designation = void 0; const class_validator_1 = require("class-validator"); const class_transformer_1 = require("class-transformer"); const auth_1 = require("../../../auth"); var Designation; (function (Designation) { Designation["SALES_MANAGER"] = "sales-manager"; Designation["SALES_EXECUTIVE"] = "sales-executive"; Designation["CO_FOUNDER"] = "co-founder"; Designation["CHIEF_SALES_OFFICER"] = "chief sales officer"; Designation["CHIEF_PURCHASING_OFFICER"] = "Chief Purchasing Officer"; Designation["PURCHASE_MANAGER"] = "Purchase Manager"; Designation["PURCHASER"] = "Purchaser"; Designation["FINANCE_MANAGER"] = "Finance Manager"; Designation["HEAD_OF_ACCOUNTS"] = "Head of Accounts"; Designation["CHIEF_MARKETING_OFFICER"] = "Chief Marketing Officer"; Designation["MARKETING_MANAGER"] = "Marketing Manager"; Designation["AFTERCARE_DIRECTOR"] = "Aftercare Director"; Designation["SALES_COORDINATOR"] = "sales-coordinator"; Designation["AFTERCARE"] = "aftercare"; Designation["DIRECTOR_OF_TECHNOLOGY"] = "Director of Technology"; Designation["PURCHASE_EXECUTIVE"] = "Purchase Executive"; })(Designation = exports.Designation || (exports.Designation = {})); var TeamCategory; (function (TeamCategory) { TeamCategory["SALES"] = "sales"; TeamCategory["MANAGEMENT"] = "management"; TeamCategory["PURCHASES"] = "purchases"; TeamCategory["SALES_COORDINATOR"] = "sales-coordinator"; TeamCategory["AFTERCARE"] = "aftercare"; })(TeamCategory = exports.TeamCategory || (exports.TeamCategory = {})); var Languages; (function (Languages) { // Middle Eastern Languages Languages["ARABIC"] = "Arabic"; Languages["AFRIKAANS"] = "Afrikaans"; Languages["PERSIAN"] = "Persian"; Languages["TURKISH"] = "Turkish"; Languages["HEBREW"] = "Hebrew"; // South Asian Languages Languages["HINDI"] = "Hindi"; Languages["URDU"] = "Urdu"; Languages["BENGALI"] = "Bengali"; Languages["PUNJABI"] = "Punjabi"; Languages["MALAYALAM"] = "Malayalam"; Languages["TAMIL"] = "Tamil"; Languages["TELUGU"] = "Telugu"; Languages["SINHALESE"] = "Sinhalese"; // East Asian Languages Languages["MANDARIN"] = "Mandarin"; Languages["CANTONESE"] = "Cantonese"; Languages["KOREAN"] = "Korean"; Languages["JAPANESE"] = "Japanese"; Languages["VIETNAMESE"] = "Vietnamese"; Languages["THAI"] = "Thai"; Languages["TAGALOG"] = "Tagalog"; Languages["FILIPINO"] = "Filipino"; Languages["INDONESIAN"] = "Indonesian"; Languages["MALAY"] = "Malay"; // European Languages Languages["ENGLISH"] = "English"; Languages["FRENCH"] = "French"; Languages["GERMAN"] = "German"; Languages["SPANISH"] = "Spanish"; Languages["ITALIAN"] = "Italian"; Languages["RUSSIAN"] = "Russian"; Languages["PORTUGUESE"] = "Portuguese"; // African Languages Languages["SWAHILI"] = "Swahili"; Languages["AMHARIC"] = "Amharic"; Languages["SOMALI"] = "Somali"; })(Languages = exports.Languages || (exports.Languages = {})); class SalesAgentFilterDTO { 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)(SalesAgentFilterDTO, plain); } toPlain() { return (0, class_transformer_1.classToPlain)(this); } } __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentFilterDTO.prototype, "search", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentFilterDTO.prototype, "name", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsEmail)(), __metadata("design:type", String) ], SalesAgentFilterDTO.prototype, "email", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentFilterDTO.prototype, "phone", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentFilterDTO.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsEnum)(TeamCategory), __metadata("design:type", String) ], SalesAgentFilterDTO.prototype, "teamCategory", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsEnum)(Designation), __metadata("design:type", String) ], SalesAgentFilterDTO.prototype, "designation", void 0); __decorate([ (0, class_validator_1.IsNumber)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Number) ], SalesAgentFilterDTO.prototype, "sortOrder", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsArray)(), (0, class_validator_1.IsEnum)(Languages, { each: true }), __metadata("design:type", Array) ], SalesAgentFilterDTO.prototype, "languages", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsBoolean)(), __metadata("design:type", Boolean) ], SalesAgentFilterDTO.prototype, "isActive", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsDate)(), __metadata("design:type", Date) ], SalesAgentFilterDTO.prototype, "createdAtStart", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsDate)(), __metadata("design:type", Date) ], SalesAgentFilterDTO.prototype, "createdAtEnd", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsDate)(), __metadata("design:type", Date) ], SalesAgentFilterDTO.prototype, "lastLoginStart", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsDate)(), __metadata("design:type", Date) ], SalesAgentFilterDTO.prototype, "lastLoginEnd", void 0); exports.SalesAgentFilterDTO = SalesAgentFilterDTO; class SalesAgentOptionsDTO { constructor() { this.page = 1; this.limit = 10; this.sortBy = "createdAt"; this.sortOrder = "DESC"; this.includeInactive = false; } 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)(SalesAgentOptionsDTO, plain); } toPlain() { return (0, class_transformer_1.classToPlain)(this); } } __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentOptionsDTO.prototype, "page", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentOptionsDTO.prototype, "limit", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentOptionsDTO.prototype, "sortBy", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentOptionsDTO.prototype, "sortOrder", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsBoolean)(), __metadata("design:type", Boolean) ], SalesAgentOptionsDTO.prototype, "includeInactive", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentOptionsDTO.prototype, "searchQuery", void 0); exports.SalesAgentOptionsDTO = SalesAgentOptionsDTO; class SalesAgentGetDTO { static fromPlain(plain) { const dto = new SalesAgentGetDTO(); if (plain.filter) { dto.filter = SalesAgentFilterDTO.fromPlain(plain.filter); } if (plain.options) { dto.options = SalesAgentOptionsDTO.fromPlain(plain.options); } return dto; } static toPlain(instance) { var _a, _b; return { filter: (_a = instance.filter) === null || _a === void 0 ? void 0 : _a.toPlain(), options: (_b = instance.options) === null || _b === void 0 ? void 0 : _b.toPlain(), }; } toPlain() { var _a, _b; return { filter: (_a = this.filter) === null || _a === void 0 ? void 0 : _a.toPlain(), options: (_b = this.options) === null || _b === void 0 ? void 0 : _b.toPlain(), }; } } __decorate([ (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "id", void 0); __decorate([ (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentGetDTO.prototype, "refId", void 0); __decorate([ (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "name", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsPhoneNumber)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "phone", void 0); __decorate([ (0, class_validator_1.IsEmail)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "email", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "photo", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "agentShortIntro", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "agentIntro", void 0); __decorate([ (0, class_validator_1.IsNumber)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Number) ], SalesAgentGetDTO.prototype, "sortOrder", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "bioVideoUrl", void 0); __decorate([ (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentGetDTO.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsEnum)(TeamCategory), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "teamCategory", void 0); __decorate([ (0, class_validator_1.IsEnum)(Designation), __metadata("design:type", String) ], SalesAgentGetDTO.prototype, "designation", void 0); __decorate([ (0, class_validator_1.IsArray)(), (0, class_validator_1.IsEnum)(Languages, { each: true }), __metadata("design:type", Array) ], SalesAgentGetDTO.prototype, "languages", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_transformer_1.Type)(() => SalesAgentFilterDTO), __metadata("design:type", SalesAgentFilterDTO) ], SalesAgentGetDTO.prototype, "filter", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_transformer_1.Type)(() => SalesAgentOptionsDTO), __metadata("design:type", SalesAgentOptionsDTO) ], SalesAgentGetDTO.prototype, "options", void 0); exports.SalesAgentGetDTO = SalesAgentGetDTO; class SalesAgentResponseDTO { 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)(SalesAgentResponseDTO, plain); } toPlain() { return (0, class_transformer_1.classToPlain)(this); } } __decorate([ (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "id", void 0); __decorate([ (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentResponseDTO.prototype, "refId", void 0); __decorate([ (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "name", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsPhoneNumber)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "phone", void 0); __decorate([ (0, class_validator_1.IsEmail)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "email", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "photo", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "agentShortIntro", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "agentIntro", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "bioVideoUrl", void 0); __decorate([ (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentResponseDTO.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsNumber)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Number) ], SalesAgentResponseDTO.prototype, "sortOrder", void 0); __decorate([ (0, class_validator_1.IsEnum)(TeamCategory), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "teamCategory", void 0); __decorate([ (0, class_validator_1.IsEnum)(Designation), __metadata("design:type", String) ], SalesAgentResponseDTO.prototype, "designation", void 0); __decorate([ (0, class_validator_1.IsArray)(), (0, class_validator_1.IsEnum)(Languages, { each: true }), __metadata("design:type", Array) ], SalesAgentResponseDTO.prototype, "languages", void 0); __decorate([ (0, class_validator_1.IsBoolean)(), __metadata("design:type", Boolean) ], SalesAgentResponseDTO.prototype, "isActive", void 0); __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Date) ], SalesAgentResponseDTO.prototype, "createdAt", void 0); __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Date) ], SalesAgentResponseDTO.prototype, "updatedAt", void 0); __decorate([ (0, class_validator_1.IsDate)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Date) ], SalesAgentResponseDTO.prototype, "lastLogin", void 0); exports.SalesAgentResponseDTO = SalesAgentResponseDTO; class SalesAgentCreateDTO { constructor() { this.status = 1; } 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(); } toUserDTO() { const userDto = new auth_1.UserCreateDTO(); userDto.name = this.name; userDto.email = this.email; userDto.phone = this.phone; userDto.photo = this.photo; return userDto; } toSalesAgentData() { return { status: this.status, designation: this.designation, languages: this.languages, agentShortIntro: this.agentShortIntro, agentIntro: this.agentIntro, bioVideoUrl: this.bioVideoUrl, teamCategory: this.teamCategory }; } static fromPlain(plain) { return (0, class_transformer_1.plainToClass)(SalesAgentCreateDTO, plain); } toPlain() { return (0, class_transformer_1.classToPlain)(this); } } __decorate([ (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "name", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsPhoneNumber)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "phone", void 0); __decorate([ (0, class_validator_1.IsEmail)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "email", void 0); __decorate([ (0, class_validator_1.IsNumber)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Number) ], SalesAgentCreateDTO.prototype, "sortOrder", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "photo", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "agentShortIntro", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "agentIntro", void 0); __decorate([ (0, class_validator_1.IsString)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "bioVideoUrl", void 0); __decorate([ (0, class_validator_1.IsNumber)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Number) ], SalesAgentCreateDTO.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsEnum)(TeamCategory), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "teamCategory", void 0); __decorate([ (0, class_validator_1.IsEnum)(Designation), __metadata("design:type", String) ], SalesAgentCreateDTO.prototype, "designation", void 0); __decorate([ (0, class_validator_1.IsArray)(), (0, class_validator_1.IsEnum)(Languages, { each: true }), __metadata("design:type", Array) ], SalesAgentCreateDTO.prototype, "languages", void 0); exports.SalesAgentCreateDTO = SalesAgentCreateDTO; class SalesAgentUpdateDTO { 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(); } toUserDTO() { const userDto = new auth_1.UserUpdateDTO(); if (this.name) userDto.name = this.name; if (this.email) userDto.email = this.email; if (this.phone) userDto.phone = this.phone; if (this.photo) userDto.photo = this.photo; return userDto; } toSalesAgentData() { const salesAgentData = {}; if (this.status !== undefined) salesAgentData.status = this.status; if (this.designation) salesAgentData.designation = this.designation; if (this.languages) salesAgentData.languages = this.languages; if (this.agentShortIntro) salesAgentData.agentShortIntro = this.agentShortIntro; if (this.agentIntro) salesAgentData.agentIntro = this.agentIntro; if (this.bioVideoUrl) salesAgentData.bioVideoUrl = this.bioVideoUrl; if (this.teamCategory) salesAgentData.teamCategory = this.teamCategory; if (this.isActive) salesAgentData.isActive = this.isActive; return salesAgentData; } static fromPlain(plain) { return (0, class_transformer_1.plainToClass)(SalesAgentUpdateDTO, plain); } toPlain() { return (0, class_transformer_1.classToPlain)(this); } } __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "name", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), (0, class_validator_1.IsPhoneNumber)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "phone", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsEmail)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "email", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "photo", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "agentShortIntro", void 0); __decorate([ (0, class_validator_1.IsNumber)(), (0, class_validator_1.IsOptional)(), __metadata("design:type", Number) ], SalesAgentUpdateDTO.prototype, "sortOrder", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "agentIntro", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsString)(), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "bioVideoUrl", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsNumber)(), __metadata("design:type", Number) ], SalesAgentUpdateDTO.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsEnum)(TeamCategory), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "teamCategory", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsEnum)(Designation), __metadata("design:type", String) ], SalesAgentUpdateDTO.prototype, "designation", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsArray)(), (0, class_validator_1.IsEnum)(Languages, { each: true }), __metadata("design:type", Array) ], SalesAgentUpdateDTO.prototype, "languages", void 0); __decorate([ (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsBoolean)(), __metadata("design:type", Boolean) ], SalesAgentUpdateDTO.prototype, "isActive", void 0); exports.SalesAgentUpdateDTO = SalesAgentUpdateDTO;