diff --git a/dist/Customer/Address.d.ts b/dist/Customer/Address.d.ts index 6360594..0c30a34 100644 --- a/dist/Customer/Address.d.ts +++ b/dist/Customer/Address.d.ts @@ -1,5 +1,5 @@ -import type Contact from "./Contact"; -import type Office from "./Office"; +import Contact from "./Contact"; +import Office from "./Office"; import Resource from "../Resource"; export default class Address extends Resource { address: string; diff --git a/dist/Customer/Address.js b/dist/Customer/Address.js index f261e0c..adaa194 100644 --- a/dist/Customer/Address.js +++ b/dist/Customer/Address.js @@ -13,7 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const Contact_1 = __importDefault(require("./Contact")); +const Office_1 = __importDefault(require("./Office")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class Address extends Resource_1.default { constructor() { super(...arguments); @@ -43,4 +46,16 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Address.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Office_1.default), + __metadata("design:type", Object) +], Address.prototype, "office", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Contact_1.default), + __metadata("design:type", Object) +], Address.prototype, "contact", void 0); exports.default = Address; diff --git a/dist/Customer/Contact.d.ts b/dist/Customer/Contact.d.ts index d0107d0..f996b6f 100644 --- a/dist/Customer/Contact.d.ts +++ b/dist/Customer/Contact.d.ts @@ -1,6 +1,6 @@ -import type Address from "./Address"; -import type Customer from "."; -import type User from "../Notary"; +import Address from "./Address"; +import Customer from "."; +import User from "../Notary"; import Resource from "../Resource"; export default class Contact extends Resource { first_name: string; @@ -8,7 +8,7 @@ export default class Contact extends Resource { email: string; cell_phone_number: string; phone_number: string; - civility: ECivility; + civility: "MALE" | "FEMALE" | "OTHERS"; address: Address; created_at: Date | null; updated_at: Date | null; @@ -20,4 +20,3 @@ export declare enum ECivility { FEMALE = "FEMALE", OTHERS = "OTHERS" } -export declare type TCivility = ECivility.MALE | ECivility.FEMALE | ECivility.OTHERS; diff --git a/dist/Customer/Contact.js b/dist/Customer/Contact.js index 68ad7c4..a16acc1 100644 --- a/dist/Customer/Contact.js +++ b/dist/Customer/Contact.js @@ -14,7 +14,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.ECivility = void 0; const class_validator_1 = require("class-validator"); +const Address_1 = __importDefault(require("./Address")); +const _1 = __importDefault(require(".")); +const Notary_1 = __importDefault(require("../Notary")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class Contact extends Resource_1.default { constructor() { super(...arguments); @@ -49,7 +53,9 @@ __decorate([ ], Contact.prototype, "civility", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Address is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Address_1.default), + __metadata("design:type", Address_1.default) ], Contact.prototype, "address", void 0); __decorate([ (0, class_validator_1.IsDate)(), @@ -59,6 +65,18 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Contact.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Notary_1.default), + __metadata("design:type", Object) +], Contact.prototype, "user", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => _1.default), + __metadata("design:type", Object) +], Contact.prototype, "customer", void 0); exports.default = Contact; var ECivility; (function (ECivility) { diff --git a/dist/Customer/Customer.d.ts b/dist/Customer/Customer.d.ts index 61928ad..9cdafca 100644 --- a/dist/Customer/Customer.d.ts +++ b/dist/Customer/Customer.d.ts @@ -1,11 +1,6 @@ import { Contact, Document } from "."; import OfficeFolderHasCustomer from "./OfficeFolderHasCustomer"; import Resource from "../Resource"; -export declare enum ECustomerStatus { - VALIDATED = "VALIDATED", - PENDING = "PENDING", - ERRONED = "ERRONED" -} export default class Customer extends Resource { status: "VALIDATED" | "PENDING" | "ERRONED"; contact: Contact; @@ -14,4 +9,8 @@ export default class Customer extends Resource { office_folder_has_customers?: OfficeFolderHasCustomer[]; documents?: Document[]; } -export declare type TCustomerStatus = ECustomerStatus.VALIDATED | ECustomerStatus.PENDING | ECustomerStatus.ERRONED; +export declare enum ECustomerStatus { + VALIDATED = "VALIDATED", + PENDING = "PENDING", + ERRONED = "ERRONED" +} diff --git a/dist/Customer/Customer.js b/dist/Customer/Customer.js index b2dcb30..295e038 100644 --- a/dist/Customer/Customer.js +++ b/dist/Customer/Customer.js @@ -15,13 +15,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.ECustomerStatus = void 0; const class_validator_1 = require("class-validator"); const _1 = require("."); +const OfficeFolderHasCustomer_1 = __importDefault(require("./OfficeFolderHasCustomer")); const Resource_1 = __importDefault(require("../Resource")); -var ECustomerStatus; -(function (ECustomerStatus) { - ECustomerStatus["VALIDATED"] = "VALIDATED"; - ECustomerStatus["PENDING"] = "PENDING"; - ECustomerStatus["ERRONED"] = "ERRONED"; -})(ECustomerStatus = exports.ECustomerStatus || (exports.ECustomerStatus = {})); +const class_transformer_1 = require("class-transformer"); class Customer extends Resource_1.default { constructor() { super(...arguments); @@ -35,6 +31,8 @@ __decorate([ ], Customer.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Contact is required" }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => _1.Contact), __metadata("design:type", _1.Contact) ], Customer.prototype, "contact", void 0); __decorate([ @@ -45,4 +43,22 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Customer.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolderHasCustomer_1.default), + __metadata("design:type", Array) +], Customer.prototype, "office_folder_has_customers", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => _1.Document), + __metadata("design:type", Array) +], Customer.prototype, "documents", void 0); exports.default = Customer; +var ECustomerStatus; +(function (ECustomerStatus) { + ECustomerStatus["VALIDATED"] = "VALIDATED"; + ECustomerStatus["PENDING"] = "PENDING"; + ECustomerStatus["ERRONED"] = "ERRONED"; +})(ECustomerStatus = exports.ECustomerStatus || (exports.ECustomerStatus = {})); diff --git a/dist/Customer/Deed.d.ts b/dist/Customer/Deed.d.ts index ac150a4..669dda6 100644 --- a/dist/Customer/Deed.d.ts +++ b/dist/Customer/Deed.d.ts @@ -1,6 +1,6 @@ -import type DeedType from "./DeedType"; -import type DeedHasDocumentType from "./DeedHasDocumentType"; -import type OfficeFolder from "./OfficeFolder"; +import DeedType from "./DeedType"; +import DeedHasDocumentType from "./DeedHasDocumentType"; +import OfficeFolder from "./OfficeFolder"; import Resource from "../Resource"; export default class Deed extends Resource { deed_type: DeedType; diff --git a/dist/Customer/Deed.js b/dist/Customer/Deed.js index cf2c7ce..c2bdd28 100644 --- a/dist/Customer/Deed.js +++ b/dist/Customer/Deed.js @@ -13,7 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const DeedType_1 = __importDefault(require("./DeedType")); +const DeedHasDocumentType_1 = __importDefault(require("./DeedHasDocumentType")); +const OfficeFolder_1 = __importDefault(require("./OfficeFolder")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class Deed extends Resource_1.default { constructor() { super(...arguments); @@ -23,7 +27,9 @@ class Deed extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Deed type is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedType_1.default), + __metadata("design:type", DeedType_1.default) ], Deed.prototype, "deed_type", void 0); __decorate([ (0, class_validator_1.IsDate)(), @@ -33,4 +39,16 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Deed.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedHasDocumentType_1.default), + __metadata("design:type", Array) +], Deed.prototype, "deed_has_document_types", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolder_1.default), + __metadata("design:type", OfficeFolder_1.default) +], Deed.prototype, "office_folder", void 0); exports.default = Deed; diff --git a/dist/Customer/DeedHasDocumentType.d.ts b/dist/Customer/DeedHasDocumentType.d.ts index a8647cb..0bdbf7a 100644 --- a/dist/Customer/DeedHasDocumentType.d.ts +++ b/dist/Customer/DeedHasDocumentType.d.ts @@ -1,5 +1,5 @@ -import type Deed from "./Deed"; -import type DocumentType from "./DocumentType"; +import Deed from "./Deed"; +import DocumentType from "./DocumentType"; import Resource from "../Resource"; export default class DeedHasDocumentType extends Resource { document_type: DocumentType; diff --git a/dist/Customer/DeedHasDocumentType.js b/dist/Customer/DeedHasDocumentType.js index ac5022e..86796cd 100644 --- a/dist/Customer/DeedHasDocumentType.js +++ b/dist/Customer/DeedHasDocumentType.js @@ -13,7 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const Deed_1 = __importDefault(require("./Deed")); +const DocumentType_1 = __importDefault(require("./DocumentType")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class DeedHasDocumentType extends Resource_1.default { constructor() { super(...arguments); @@ -23,11 +26,15 @@ class DeedHasDocumentType extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Document type is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DocumentType_1.default), + __metadata("design:type", DocumentType_1.default) ], DeedHasDocumentType.prototype, "document_type", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Deed is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Deed_1.default), + __metadata("design:type", Deed_1.default) ], DeedHasDocumentType.prototype, "deed", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Customer/DeedType.d.ts b/dist/Customer/DeedType.d.ts index b334e73..74446be 100644 --- a/dist/Customer/DeedType.d.ts +++ b/dist/Customer/DeedType.d.ts @@ -1,6 +1,6 @@ -import type Deed from "./Deed"; -import type DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; -import type Office from "./Office"; +import Deed from "./Deed"; +import DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; +import Office from "./Office"; import Resource from "../Resource"; export default class DeedType extends Resource { name: string; diff --git a/dist/Customer/DeedType.js b/dist/Customer/DeedType.js index b27450a..3c029ba 100644 --- a/dist/Customer/DeedType.js +++ b/dist/Customer/DeedType.js @@ -13,7 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const Deed_1 = __importDefault(require("./Deed")); +const DeedTypeHasDocumentType_1 = __importDefault(require("./DeedTypeHasDocumentType")); +const Office_1 = __importDefault(require("./Office")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class DeedType extends Resource_1.default { constructor() { super(...arguments); @@ -36,7 +40,9 @@ __decorate([ ], DeedType.prototype, "archived_at", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Office is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Office_1.default), + __metadata("design:type", Office_1.default) ], DeedType.prototype, "office", void 0); __decorate([ (0, class_validator_1.IsDate)(), @@ -46,4 +52,16 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], DeedType.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Deed_1.default), + __metadata("design:type", Array) +], DeedType.prototype, "deed", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedTypeHasDocumentType_1.default), + __metadata("design:type", Array) +], DeedType.prototype, "deed_type_has_document_types", void 0); exports.default = DeedType; diff --git a/dist/Customer/DeedTypeHasDocumentType.d.ts b/dist/Customer/DeedTypeHasDocumentType.d.ts index 8ee4291..1d0fa3b 100644 --- a/dist/Customer/DeedTypeHasDocumentType.d.ts +++ b/dist/Customer/DeedTypeHasDocumentType.d.ts @@ -1,5 +1,5 @@ -import type DeedType from "./DeedType"; -import type DocumentType from "./DocumentType"; +import DeedType from "./DeedType"; +import DocumentType from "./DocumentType"; import Resource from "../Resource"; export default class DeedTypeHasDocumentType extends Resource { document_type: DocumentType; diff --git a/dist/Customer/DeedTypeHasDocumentType.js b/dist/Customer/DeedTypeHasDocumentType.js index 8b41698..f2b0a52 100644 --- a/dist/Customer/DeedTypeHasDocumentType.js +++ b/dist/Customer/DeedTypeHasDocumentType.js @@ -13,7 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const DeedType_1 = __importDefault(require("./DeedType")); +const DocumentType_1 = __importDefault(require("./DocumentType")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class DeedTypeHasDocumentType extends Resource_1.default { constructor() { super(...arguments); @@ -23,11 +26,15 @@ class DeedTypeHasDocumentType extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Document type is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DocumentType_1.default), + __metadata("design:type", DocumentType_1.default) ], DeedTypeHasDocumentType.prototype, "document_type", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Deed type is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedType_1.default), + __metadata("design:type", DeedType_1.default) ], DeedTypeHasDocumentType.prototype, "deed_type", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Customer/Document.d.ts b/dist/Customer/Document.d.ts index dd02b41..a747696 100644 --- a/dist/Customer/Document.d.ts +++ b/dist/Customer/Document.d.ts @@ -1,11 +1,11 @@ -import type Customer from "."; -import type DocumentHistory from "./DocumentHistory"; -import type DocumentType from "./DocumentType"; -import type File from "./File"; -import type OfficeFolder from "./OfficeFolder"; +import Customer from "."; +import DocumentHistory from "./DocumentHistory"; +import DocumentType from "./DocumentType"; +import File from "./File"; +import OfficeFolder from "./OfficeFolder"; import Resource from "../Resource"; export default class Document extends Resource { - document_status: EDocumentStatus; + document_status: "ASKED" | "DEPOSITED" | "VALIDATED" | "ANCHORED" | "REFUSED"; document_type: DocumentType; folder: OfficeFolder; depositor: Customer; @@ -21,4 +21,3 @@ export declare enum EDocumentStatus { ANCHORED = "ANCHORED", REFUSED = "REFUSED" } -export declare type TDocumentStatus = EDocumentStatus.ASKED | EDocumentStatus.DEPOSITED | EDocumentStatus.VALIDATED | EDocumentStatus.ANCHORED | EDocumentStatus.REFUSED; diff --git a/dist/Customer/Document.js b/dist/Customer/Document.js index c23c2e4..8e881e9 100644 --- a/dist/Customer/Document.js +++ b/dist/Customer/Document.js @@ -14,7 +14,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.EDocumentStatus = void 0; const class_validator_1 = require("class-validator"); +const _1 = __importDefault(require(".")); +const DocumentHistory_1 = __importDefault(require("./DocumentHistory")); +const DocumentType_1 = __importDefault(require("./DocumentType")); +const File_1 = __importDefault(require("./File")); +const OfficeFolder_1 = __importDefault(require("./OfficeFolder")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class Document extends Resource_1.default { constructor() { super(...arguments); @@ -28,15 +34,21 @@ __decorate([ ], Document.prototype, "document_status", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Document type is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DocumentType_1.default), + __metadata("design:type", DocumentType_1.default) ], Document.prototype, "document_type", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Folder is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolder_1.default), + __metadata("design:type", OfficeFolder_1.default) ], Document.prototype, "folder", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Depositor is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => _1.default), + __metadata("design:type", _1.default) ], Document.prototype, "depositor", void 0); __decorate([ (0, class_validator_1.IsDate)(), @@ -46,6 +58,18 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Document.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => File_1.default), + __metadata("design:type", Array) +], Document.prototype, "files", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DocumentHistory_1.default), + __metadata("design:type", Array) +], Document.prototype, "document_history", void 0); exports.default = Document; var EDocumentStatus; (function (EDocumentStatus) { diff --git a/dist/Customer/DocumentHistory.d.ts b/dist/Customer/DocumentHistory.d.ts index 7262aa0..d95c5f7 100644 --- a/dist/Customer/DocumentHistory.d.ts +++ b/dist/Customer/DocumentHistory.d.ts @@ -1,7 +1,7 @@ -import type { default as Document, EDocumentStatus } from "./Document"; +import { default as Document } from "./Document"; import Resource from "../Resource"; export default class DocumentHistory extends Resource { - document_status: EDocumentStatus; + document_status: "ASKED" | "DEPOSITED" | "VALIDATED" | "ANCHORED" | "REFUSED"; document: Document; refused_reason: string | null; created_at: Date | null; diff --git a/dist/Customer/DocumentHistory.js b/dist/Customer/DocumentHistory.js index 8aee97b..d62d7d4 100644 --- a/dist/Customer/DocumentHistory.js +++ b/dist/Customer/DocumentHistory.js @@ -13,7 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const Document_1 = __importDefault(require("./Document")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class DocumentHistory extends Resource_1.default { constructor() { super(...arguments); @@ -28,7 +30,9 @@ __decorate([ ], DocumentHistory.prototype, "document_status", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Document is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Document_1.default), + __metadata("design:type", Document_1.default) ], DocumentHistory.prototype, "document", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Customer/DocumentType.d.ts b/dist/Customer/DocumentType.d.ts index 2120c53..db3f36e 100644 --- a/dist/Customer/DocumentType.d.ts +++ b/dist/Customer/DocumentType.d.ts @@ -1,6 +1,6 @@ -import type DeedHasDocumentType from "./DeedHasDocumentType"; -import type Document from "./Document"; -import type DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; +import DeedHasDocumentType from "./DeedHasDocumentType"; +import Document from "./Document"; +import DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; import Resource from "../Resource"; export default class DocumentType extends Resource { name: string; diff --git a/dist/Customer/DocumentType.js b/dist/Customer/DocumentType.js index 3511641..85f1a22 100644 --- a/dist/Customer/DocumentType.js +++ b/dist/Customer/DocumentType.js @@ -13,7 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const DeedHasDocumentType_1 = __importDefault(require("./DeedHasDocumentType")); +const Document_1 = __importDefault(require("./Document")); +const DeedTypeHasDocumentType_1 = __importDefault(require("./DeedTypeHasDocumentType")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class DocumentType extends Resource_1.default { constructor() { super(...arguments); @@ -31,6 +35,10 @@ __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Public description is required" }), __metadata("design:type", String) ], DocumentType.prototype, "public_description", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + __metadata("design:type", Object) +], DocumentType.prototype, "private_description", void 0); __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) @@ -43,4 +51,22 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], DocumentType.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Document_1.default), + __metadata("design:type", Array) +], DocumentType.prototype, "documents", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedHasDocumentType_1.default), + __metadata("design:type", Array) +], DocumentType.prototype, "deed_has_document_types", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedTypeHasDocumentType_1.default), + __metadata("design:type", Array) +], DocumentType.prototype, "deed_type_has_document_types", void 0); exports.default = DocumentType; diff --git a/dist/Customer/File.d.ts b/dist/Customer/File.d.ts index 06619d4..64d4144 100644 --- a/dist/Customer/File.d.ts +++ b/dist/Customer/File.d.ts @@ -1,4 +1,4 @@ -import type Document from "./Document"; +import Document from "./Document"; import Resource from "../Resource"; export default class File extends Resource { document: Document; diff --git a/dist/Customer/File.js b/dist/Customer/File.js index 8ea34cd..cabfb77 100644 --- a/dist/Customer/File.js +++ b/dist/Customer/File.js @@ -13,7 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const Document_1 = __importDefault(require("./Document")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class File extends Resource_1.default { constructor() { super(...arguments); @@ -24,7 +26,9 @@ class File extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Document is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Document_1.default), + __metadata("design:type", Document_1.default) ], File.prototype, "document", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Customer/Notification.d.ts b/dist/Customer/Notification.d.ts index 40b329d..23f518b 100644 --- a/dist/Customer/Notification.d.ts +++ b/dist/Customer/Notification.d.ts @@ -1,4 +1,4 @@ -import type UserHasNotification from "./UserHasNotification"; +import UserHasNotification from "./UserHasNotification"; import Resource from "../Resource"; export default class Notification extends Resource { message: string; diff --git a/dist/Customer/Notification.js b/dist/Customer/Notification.js index 1999f1b..849e1e7 100644 --- a/dist/Customer/Notification.js +++ b/dist/Customer/Notification.js @@ -13,7 +13,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const UserHasNotification_1 = __importDefault(require("./UserHasNotification")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class Notification extends Resource_1.default { constructor() { super(...arguments); @@ -38,4 +40,10 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Notification.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => UserHasNotification_1.default), + __metadata("design:type", Array) +], Notification.prototype, "user_has_notifications", void 0); exports.default = Notification; diff --git a/dist/Customer/Office.d.ts b/dist/Customer/Office.d.ts index 32a0b98..b536495 100644 --- a/dist/Customer/Office.d.ts +++ b/dist/Customer/Office.d.ts @@ -1,14 +1,14 @@ -import type Address from "./Address"; -import type DeedType from "./DeedType"; -import type OfficeFolder from "./OfficeFolder"; -import type User from "../Notary/User"; +import Address from "./Address"; +import DeedType from "./DeedType"; +import OfficeFolder from "./OfficeFolder"; +import User from "../Notary/User"; import Resource from "../Resource"; export default class Office extends Resource { idNot: string; name: string; crpcen: string; address: Address; - office_status: EOfficeStatus; + office_status: "ACTIVATED" | "DESACTIVATED"; created_at: Date | null; updated_at: Date | null; deed_types?: DeedType[]; @@ -19,4 +19,3 @@ export declare enum EOfficeStatus { ACTIVATED = "ACTIVATED", DESACTIVATED = "DESACTIVATED" } -export declare type TOfficeStatus = EOfficeStatus.ACTIVATED | EOfficeStatus.DESACTIVATED; diff --git a/dist/Customer/Office.js b/dist/Customer/Office.js index af5de84..f635f94 100644 --- a/dist/Customer/Office.js +++ b/dist/Customer/Office.js @@ -14,7 +14,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.EOfficeStatus = void 0; const class_validator_1 = require("class-validator"); +const Address_1 = __importDefault(require("./Address")); +const DeedType_1 = __importDefault(require("./DeedType")); +const OfficeFolder_1 = __importDefault(require("./OfficeFolder")); +const User_1 = __importDefault(require("../Notary/User")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class Office extends Resource_1.default { constructor() { super(...arguments); @@ -36,7 +41,9 @@ __decorate([ ], Office.prototype, "crpcen", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Address is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Address_1.default), + __metadata("design:type", Address_1.default) ], Office.prototype, "address", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Office status is required" }), @@ -50,6 +57,24 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], Office.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => DeedType_1.default), + __metadata("design:type", Array) +], Office.prototype, "deed_types", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => User_1.default), + __metadata("design:type", Array) +], Office.prototype, "users", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolder_1.default), + __metadata("design:type", Array) +], Office.prototype, "office_folders", void 0); exports.default = Office; var EOfficeStatus; (function (EOfficeStatus) { diff --git a/dist/Customer/OfficeFolder.d.ts b/dist/Customer/OfficeFolder.d.ts index d753937..bf9c8f9 100644 --- a/dist/Customer/OfficeFolder.d.ts +++ b/dist/Customer/OfficeFolder.d.ts @@ -1,15 +1,15 @@ -import type Deed from "./Deed"; -import type Document from "./Document"; -import type Office from "./Office"; -import type OfficeFolderHasCustomer from "./OfficeFolderHasCustomer"; -import type OfficeFolderHasStakeholder from "./OfficeFolderHasStakeholder"; +import Deed from "./Deed"; +import Document from "./Document"; +import Office from "./Office"; +import OfficeFolderHasCustomer from "./OfficeFolderHasCustomer"; +import OfficeFolderHasStakeholder from "./OfficeFolderHasStakeholder"; import Resource from "../Resource"; export default class OfficeFolder extends Resource { folder_number: string; name: string; description: string | null; archived_description: string | null; - status: EFolderStatus; + status: "LIVE" | "ARCHIVED"; deed: Deed; office: Office; created_at: Date | null; @@ -22,4 +22,3 @@ export declare enum EFolderStatus { LIVE = "LIVE", ARCHIVED = "ARCHIVED" } -export declare type TFolderStatus = EFolderStatus.LIVE | EFolderStatus.ARCHIVED; diff --git a/dist/Customer/OfficeFolder.js b/dist/Customer/OfficeFolder.js index e847c12..84bf322 100644 --- a/dist/Customer/OfficeFolder.js +++ b/dist/Customer/OfficeFolder.js @@ -14,7 +14,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.EFolderStatus = void 0; const class_validator_1 = require("class-validator"); +const Deed_1 = __importDefault(require("./Deed")); +const Document_1 = __importDefault(require("./Document")); +const Office_1 = __importDefault(require("./Office")); +const OfficeFolderHasCustomer_1 = __importDefault(require("./OfficeFolderHasCustomer")); +const OfficeFolderHasStakeholder_1 = __importDefault(require("./OfficeFolderHasStakeholder")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class OfficeFolder extends Resource_1.default { constructor() { super(...arguments); @@ -38,11 +44,15 @@ __decorate([ ], OfficeFolder.prototype, "status", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Deed is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Deed_1.default), + __metadata("design:type", Deed_1.default) ], OfficeFolder.prototype, "deed", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Office is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Office_1.default), + __metadata("design:type", Office_1.default) ], OfficeFolder.prototype, "office", void 0); __decorate([ (0, class_validator_1.IsDate)(), @@ -52,6 +62,24 @@ __decorate([ (0, class_validator_1.IsDate)(), __metadata("design:type", Object) ], OfficeFolder.prototype, "updated_at", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolderHasCustomer_1.default), + __metadata("design:type", Array) +], OfficeFolder.prototype, "office_folder_has_customers", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolderHasStakeholder_1.default), + __metadata("design:type", Array) +], OfficeFolder.prototype, "office_folder_has_stakeholder", void 0); +__decorate([ + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Document_1.default), + __metadata("design:type", Array) +], OfficeFolder.prototype, "documents", void 0); exports.default = OfficeFolder; var EFolderStatus; (function (EFolderStatus) { diff --git a/dist/Customer/OfficeFolderHasCustomer.d.ts b/dist/Customer/OfficeFolderHasCustomer.d.ts index 07a9870..6ec11e3 100644 --- a/dist/Customer/OfficeFolderHasCustomer.d.ts +++ b/dist/Customer/OfficeFolderHasCustomer.d.ts @@ -1,5 +1,5 @@ -import type Customer from "."; -import type OfficeFolder from "./OfficeFolder"; +import Customer from "."; +import OfficeFolder from "./OfficeFolder"; import Resource from "../Resource"; export default class OfficeFolderHasCustomer extends Resource { customer: Customer; diff --git a/dist/Customer/OfficeFolderHasCustomer.js b/dist/Customer/OfficeFolderHasCustomer.js index 3bf15e3..b4d40f0 100644 --- a/dist/Customer/OfficeFolderHasCustomer.js +++ b/dist/Customer/OfficeFolderHasCustomer.js @@ -13,7 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const _1 = __importDefault(require(".")); +const OfficeFolder_1 = __importDefault(require("./OfficeFolder")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class OfficeFolderHasCustomer extends Resource_1.default { constructor() { super(...arguments); @@ -23,11 +26,15 @@ class OfficeFolderHasCustomer extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Customer is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => _1.default), + __metadata("design:type", _1.default) ], OfficeFolderHasCustomer.prototype, "customer", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Office folder is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolder_1.default), + __metadata("design:type", OfficeFolder_1.default) ], OfficeFolderHasCustomer.prototype, "office_folder", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Customer/OfficeFolderHasStakeholder.d.ts b/dist/Customer/OfficeFolderHasStakeholder.d.ts index 9930710..492b73f 100644 --- a/dist/Customer/OfficeFolderHasStakeholder.d.ts +++ b/dist/Customer/OfficeFolderHasStakeholder.d.ts @@ -1,5 +1,5 @@ -import type OfficeFolder from "./OfficeFolder"; -import type User from "../Notary/User"; +import OfficeFolder from "./OfficeFolder"; +import User from "../Notary/User"; import Resource from "../Resource"; export default class OfficeFolderHasStakeholder extends Resource { user_stakeholder: User; diff --git a/dist/Customer/OfficeFolderHasStakeholder.js b/dist/Customer/OfficeFolderHasStakeholder.js index 6570d55..15e7be1 100644 --- a/dist/Customer/OfficeFolderHasStakeholder.js +++ b/dist/Customer/OfficeFolderHasStakeholder.js @@ -13,7 +13,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); +const OfficeFolder_1 = __importDefault(require("./OfficeFolder")); +const User_1 = __importDefault(require("../Notary/User")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class OfficeFolderHasStakeholder extends Resource_1.default { constructor() { super(...arguments); @@ -23,11 +26,15 @@ class OfficeFolderHasStakeholder extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "User Stakeholder is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => User_1.default), + __metadata("design:type", User_1.default) ], OfficeFolderHasStakeholder.prototype, "user_stakeholder", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Office folder is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolder_1.default), + __metadata("design:type", OfficeFolder_1.default) ], OfficeFolderHasStakeholder.prototype, "office_folder", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Customer/UserHasNotification.d.ts b/dist/Customer/UserHasNotification.d.ts index b51bb6c..47a0d28 100644 --- a/dist/Customer/UserHasNotification.d.ts +++ b/dist/Customer/UserHasNotification.d.ts @@ -1,5 +1,5 @@ -import type Notification from "./Notification"; -import type User from "../Notary/User"; +import Notification from "./Notification"; +import User from "../Notary/User"; import Resource from "../Resource"; export default class UserHasNotification extends Resource { user: User; @@ -7,7 +7,6 @@ export default class UserHasNotification extends Resource { created_at: Date | null; updated_at: Date | null; } -export declare type TNotificationStatus = "READ" | "UNREAD"; export declare enum ENotificationStatus { READ = "READ", UNREAD = "UNREAD" diff --git a/dist/Customer/UserHasNotification.js b/dist/Customer/UserHasNotification.js index 720ea43..98dacc5 100644 --- a/dist/Customer/UserHasNotification.js +++ b/dist/Customer/UserHasNotification.js @@ -14,7 +14,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.ENotificationStatus = void 0; const class_validator_1 = require("class-validator"); +const Notification_1 = __importDefault(require("./Notification")); +const User_1 = __importDefault(require("../Notary/User")); const Resource_1 = __importDefault(require("../Resource")); +const class_transformer_1 = require("class-transformer"); class UserHasNotification extends Resource_1.default { constructor() { super(...arguments); @@ -24,11 +27,15 @@ class UserHasNotification extends Resource_1.default { } __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "User is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => User_1.default), + __metadata("design:type", User_1.default) ], UserHasNotification.prototype, "user", void 0); __decorate([ (0, class_validator_1.IsNotEmpty)({ groups: ["create"], message: "Notification is required" }), - __metadata("design:type", Function) + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Notification_1.default), + __metadata("design:type", Notification_1.default) ], UserHasNotification.prototype, "notification", void 0); __decorate([ (0, class_validator_1.IsDate)(), diff --git a/dist/Notary/User.js b/dist/Notary/User.js index c072be3..3b7f08a 100644 --- a/dist/Notary/User.js +++ b/dist/Notary/User.js @@ -14,7 +14,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const class_validator_1 = require("class-validator"); const Contact_1 = __importDefault(require("../Customer/Contact")); +const Document_1 = __importDefault(require("../Customer/Document")); const Office_1 = __importDefault(require("../Customer/Office")); +const OfficeFolderHasStakeholder_1 = __importDefault(require("../Customer/OfficeFolderHasStakeholder")); const Resource_1 = __importDefault(require("../Resource")); const class_transformer_1 = require("class-transformer"); class User extends Resource_1.default { @@ -47,11 +49,15 @@ __decorate([ __metadata("design:type", Object) ], User.prototype, "updated_at", void 0); __decorate([ - (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => OfficeFolderHasStakeholder_1.default), __metadata("design:type", Array) ], User.prototype, "office_folder_has_stakeholders", void 0); __decorate([ - (0, class_validator_1.IsOptional)(), + (0, class_validator_1.IsOptional)({ groups: ["create", "update"] }), + (0, class_validator_1.ValidateNested)({ groups: ["create", "update"] }), + (0, class_transformer_1.Type)(() => Document_1.default), __metadata("design:type", Array) ], User.prototype, "documents", void 0); exports.default = User; diff --git a/src/Customer/Address.ts b/src/Customer/Address.ts index 30bf604..85f66b8 100644 --- a/src/Customer/Address.ts +++ b/src/Customer/Address.ts @@ -1,7 +1,8 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Contact from "./Contact"; -import type Office from "./Office"; +import { IsNotEmpty, IsDate, IsOptional, ValidateNested } from "class-validator"; +import Contact from "./Contact"; +import Office from "./Office"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class Address extends Resource { @IsNotEmpty({ groups: ["create"], message: "Address is required" }) @@ -19,7 +20,13 @@ export default class Address extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Office) public office?: Office | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Contact) public contact?: Contact | null = null; } diff --git a/src/Customer/Contact.ts b/src/Customer/Contact.ts index d7aa80c..f9417d5 100644 --- a/src/Customer/Contact.ts +++ b/src/Customer/Contact.ts @@ -1,8 +1,9 @@ -import { IsNotEmpty, IsDate, IsEmail, IsOptional } from "class-validator"; -import type Address from "./Address"; -import type Customer from "."; -import type User from "../Notary"; +import { IsNotEmpty, IsDate, IsEmail, IsOptional, ValidateNested } from "class-validator"; +import Address from "./Address"; +import Customer from "."; +import User from "../Notary"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class Contact extends Resource { @IsNotEmpty({ groups: ["create"], message: "First name is required" }) @@ -23,9 +24,11 @@ export default class Contact extends Resource { public phone_number!: string; @IsNotEmpty({ groups: ["create"], message: "Civility is required" }) - public civility!: ECivility; + public civility!: "MALE" | "FEMALE" | "OTHERS"; @IsNotEmpty({ groups: ["create"], message: "Address is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Address) public address!: Address; @IsDate() @@ -34,8 +37,14 @@ export default class Contact extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => User) public user?: User | null = null; - + + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Customer) public customer?: Customer | null = null; } export enum ECivility { @@ -43,4 +52,3 @@ export enum ECivility { FEMALE = "FEMALE", OTHERS = "OTHERS", } -export type TCivility = ECivility.MALE | ECivility.FEMALE | ECivility.OTHERS; diff --git a/src/Customer/Customer.ts b/src/Customer/Customer.ts index d7458a9..864528f 100644 --- a/src/Customer/Customer.ts +++ b/src/Customer/Customer.ts @@ -1,18 +1,21 @@ -import { IsDate, IsNotEmpty } from "class-validator"; +import { + IsDate, + IsNotEmpty, + IsOptional, + ValidateNested, +} from "class-validator"; import { Contact, Document } from "."; import OfficeFolderHasCustomer from "./OfficeFolderHasCustomer"; import Resource from "../Resource"; +import { Type } from "class-transformer"; -export enum ECustomerStatus { - VALIDATED = "VALIDATED", - PENDING = "PENDING", - ERRONED = "ERRONED", -} export default class Customer extends Resource { @IsNotEmpty({ groups: ["create"], message: "Status is required" }) public status!: "VALIDATED" | "PENDING" | "ERRONED"; @IsNotEmpty({ groups: ["create"], message: "Contact is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Contact) public contact!: Contact; @IsDate() @@ -21,12 +24,19 @@ export default class Customer extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolderHasCustomer) office_folder_has_customers?: OfficeFolderHasCustomer[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Document) documents?: Document[]; } -export type TCustomerStatus = - | ECustomerStatus.VALIDATED - | ECustomerStatus.PENDING - | ECustomerStatus.ERRONED; +export enum ECustomerStatus { + VALIDATED = "VALIDATED", + PENDING = "PENDING", + ERRONED = "ERRONED", +} diff --git a/src/Customer/Deed.ts b/src/Customer/Deed.ts index 2454c50..94ff1c7 100644 --- a/src/Customer/Deed.ts +++ b/src/Customer/Deed.ts @@ -1,11 +1,14 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type DeedType from "./DeedType"; -import type DeedHasDocumentType from "./DeedHasDocumentType"; -import type OfficeFolder from "./OfficeFolder"; +import { IsNotEmpty, IsDate, ValidateNested, IsOptional } from "class-validator"; +import DeedType from "./DeedType"; +import DeedHasDocumentType from "./DeedHasDocumentType"; +import OfficeFolder from "./OfficeFolder"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class Deed extends Resource{ @IsNotEmpty({ groups: ["create"], message: "Deed type is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedType) public deed_type!: DeedType; @IsDate() @@ -14,7 +17,13 @@ export default class Deed extends Resource{ @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedHasDocumentType) public deed_has_document_types?: DeedHasDocumentType[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolder) public office_folder?: OfficeFolder; } diff --git a/src/Customer/DeedHasDocumentType.ts b/src/Customer/DeedHasDocumentType.ts index 46ec1a8..5a73200 100644 --- a/src/Customer/DeedHasDocumentType.ts +++ b/src/Customer/DeedHasDocumentType.ts @@ -1,13 +1,18 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Deed from "./Deed"; -import type DocumentType from "./DocumentType"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import Deed from "./Deed"; +import DocumentType from "./DocumentType"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class DeedHasDocumentType extends Resource { @IsNotEmpty({ groups: ["create"], message: "Document type is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DocumentType) public document_type!: DocumentType; @IsNotEmpty({ groups: ["create"], message: "Deed is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Deed) public deed!: Deed; @IsDate() diff --git a/src/Customer/DeedType.ts b/src/Customer/DeedType.ts index 17fdbef..b009f77 100644 --- a/src/Customer/DeedType.ts +++ b/src/Customer/DeedType.ts @@ -1,10 +1,16 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Deed from "./Deed"; -import type DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; -import type Office from "./Office"; +import { + IsNotEmpty, + IsDate, + IsOptional, + ValidateNested, +} from "class-validator"; +import Deed from "./Deed"; +import DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; +import Office from "./Office"; import Resource from "../Resource"; +import { Type } from "class-transformer"; -export default class DeedType extends Resource{ +export default class DeedType extends Resource { @IsNotEmpty({ groups: ["create"], message: "Name is required" }) public name!: string; @@ -15,6 +21,8 @@ export default class DeedType extends Resource{ public archived_at: Date | null = null; @IsNotEmpty({ groups: ["create"], message: "Office is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Office) public office!: Office; @IsDate() @@ -23,7 +31,13 @@ export default class DeedType extends Resource{ @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Deed) public deed?: Deed[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedTypeHasDocumentType) public deed_type_has_document_types?: DeedTypeHasDocumentType[]; } diff --git a/src/Customer/DeedTypeHasDocumentType.ts b/src/Customer/DeedTypeHasDocumentType.ts index 4b50cde..47a7063 100644 --- a/src/Customer/DeedTypeHasDocumentType.ts +++ b/src/Customer/DeedTypeHasDocumentType.ts @@ -1,13 +1,18 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type DeedType from "./DeedType"; -import type DocumentType from "./DocumentType"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import DeedType from "./DeedType"; +import DocumentType from "./DocumentType"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class DeedTypeHasDocumentType extends Resource { @IsNotEmpty({ groups: ["create"], message: "Document type is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DocumentType) public document_type!: DocumentType; @IsNotEmpty({ groups: ["create"], message: "Deed type is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedType) public deed_type!: DeedType; @IsDate() diff --git a/src/Customer/Document.ts b/src/Customer/Document.ts index b60578e..00c858f 100644 --- a/src/Customer/Document.ts +++ b/src/Customer/Document.ts @@ -1,22 +1,39 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Customer from "."; -import type DocumentHistory from "./DocumentHistory"; -import type DocumentType from "./DocumentType"; -import type File from "./File"; -import type OfficeFolder from "./OfficeFolder"; +import { + IsNotEmpty, + IsDate, + IsOptional, + ValidateNested, +} from "class-validator"; +import Customer from "."; +import DocumentHistory from "./DocumentHistory"; +import DocumentType from "./DocumentType"; +import File from "./File"; +import OfficeFolder from "./OfficeFolder"; import Resource from "../Resource"; +import { Type } from "class-transformer"; -export default class Document extends Resource{ +export default class Document extends Resource { @IsNotEmpty({ groups: ["create"], message: "Document status is required" }) - public document_status!: EDocumentStatus; + public document_status!: + | "ASKED" + | "DEPOSITED" + | "VALIDATED" + | "ANCHORED" + | "REFUSED"; @IsNotEmpty({ groups: ["create"], message: "Document type is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DocumentType) public document_type!: DocumentType; @IsNotEmpty({ groups: ["create"], message: "Folder is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolder) public folder!: OfficeFolder; @IsNotEmpty({ groups: ["create"], message: "Depositor is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Customer) public depositor!: Customer; @IsDate() @@ -25,8 +42,14 @@ export default class Document extends Resource{ @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => File) public files?: File[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DocumentHistory) public document_history?: DocumentHistory[]; } export enum EDocumentStatus { @@ -36,10 +59,3 @@ export enum EDocumentStatus { ANCHORED = "ANCHORED", REFUSED = "REFUSED", } - -export type TDocumentStatus = - | EDocumentStatus.ASKED - | EDocumentStatus.DEPOSITED - | EDocumentStatus.VALIDATED - | EDocumentStatus.ANCHORED - | EDocumentStatus.REFUSED; diff --git a/src/Customer/DocumentHistory.ts b/src/Customer/DocumentHistory.ts index a65899e..5c61caf 100644 --- a/src/Customer/DocumentHistory.ts +++ b/src/Customer/DocumentHistory.ts @@ -1,12 +1,15 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type { default as Document, EDocumentStatus } from "./Document"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import { default as Document } from "./Document"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class DocumentHistory extends Resource { @IsNotEmpty({ groups: ["create"], message: "Document status is required" }) - public document_status!: EDocumentStatus; + public document_status!: "ASKED" | "DEPOSITED" | "VALIDATED" | "ANCHORED" | "REFUSED"; @IsNotEmpty({ groups: ["create"], message: "Document is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Document) public document!: Document; public refused_reason: string | null = null; diff --git a/src/Customer/DocumentType.ts b/src/Customer/DocumentType.ts index 6d0c93f..07b7a78 100644 --- a/src/Customer/DocumentType.ts +++ b/src/Customer/DocumentType.ts @@ -1,8 +1,9 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type DeedHasDocumentType from "./DeedHasDocumentType"; -import type Document from "./Document"; -import type DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; +import { IsNotEmpty, IsDate, IsOptional, ValidateNested } from "class-validator"; +import DeedHasDocumentType from "./DeedHasDocumentType"; +import Document from "./Document"; +import DeedTypeHasDocumentType from "./DeedTypeHasDocumentType"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class DocumentType extends Resource { @IsNotEmpty({ groups: ["create"], message: "Name is required" }) @@ -11,6 +12,7 @@ export default class DocumentType extends Resource { @IsNotEmpty({ groups: ["create"], message: "Public description is required" }) public public_description!: string; + @IsOptional({ groups: ["create", "update"] }) public private_description: string | null = null; @IsDate() @@ -22,9 +24,18 @@ export default class DocumentType extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Document) public documents?: Document[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedHasDocumentType) public deed_has_document_types?: DeedHasDocumentType[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedTypeHasDocumentType) public deed_type_has_document_types?: DeedTypeHasDocumentType[]; } diff --git a/src/Customer/File.ts b/src/Customer/File.ts index dcf96d6..388b4d4 100644 --- a/src/Customer/File.ts +++ b/src/Customer/File.ts @@ -1,9 +1,12 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Document from "./Document"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import Document from "./Document"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class File extends Resource { @IsNotEmpty({ groups: ["create"], message: "Document is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Document) public document!: Document; public file_path: string | null = null; diff --git a/src/Customer/Notification.ts b/src/Customer/Notification.ts index 2039381..1499123 100644 --- a/src/Customer/Notification.ts +++ b/src/Customer/Notification.ts @@ -1,6 +1,13 @@ -import { IsNotEmpty, IsDate, IsUrl } from "class-validator"; -import type UserHasNotification from "./UserHasNotification"; +import { + IsNotEmpty, + IsDate, + IsUrl, + IsOptional, + ValidateNested, +} from "class-validator"; +import UserHasNotification from "./UserHasNotification"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class Notification extends Resource { @IsNotEmpty({ groups: ["create"], message: "Message is required" }) @@ -16,5 +23,8 @@ export default class Notification extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => UserHasNotification) user_has_notifications?: UserHasNotification[]; } diff --git a/src/Customer/Office.ts b/src/Customer/Office.ts index 205b5a7..b3000e6 100644 --- a/src/Customer/Office.ts +++ b/src/Customer/Office.ts @@ -1,25 +1,33 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Address from "./Address"; -import type DeedType from "./DeedType"; -import type OfficeFolder from "./OfficeFolder"; -import type User from "../Notary/User"; +import { + IsNotEmpty, + IsDate, + IsOptional, + ValidateNested, +} from "class-validator"; +import Address from "./Address"; +import DeedType from "./DeedType"; +import OfficeFolder from "./OfficeFolder"; +import User from "../Notary/User"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class Office extends Resource { @IsNotEmpty({ groups: ["create"], message: "ID IdNote is required" }) public idNot!: string; - @IsNotEmpty({ groups: ["create"], message: "Name is required"}) + @IsNotEmpty({ groups: ["create"], message: "Name is required" }) public name!: string; @IsNotEmpty({ groups: ["create"], message: "CRPCEN is required" }) public crpcen!: string; @IsNotEmpty({ groups: ["create"], message: "Address is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Address) public address!: Address; @IsNotEmpty({ groups: ["create"], message: "Office status is required" }) - public office_status!: EOfficeStatus; + public office_status!: "ACTIVATED" | "DESACTIVATED"; @IsDate() public created_at: Date | null = null; @@ -27,10 +35,19 @@ export default class Office extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => DeedType) public deed_types?: DeedType[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => User) public users?: User[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolder) public office_folders?: OfficeFolder[]; } @@ -38,7 +55,3 @@ export enum EOfficeStatus { ACTIVATED = "ACTIVATED", DESACTIVATED = "DESACTIVATED", } - -export type TOfficeStatus = - | EOfficeStatus.ACTIVATED - | EOfficeStatus.DESACTIVATED; diff --git a/src/Customer/OfficeFolder.ts b/src/Customer/OfficeFolder.ts index 32fbf7b..5607547 100644 --- a/src/Customer/OfficeFolder.ts +++ b/src/Customer/OfficeFolder.ts @@ -1,10 +1,16 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Deed from "./Deed"; -import type Document from "./Document"; -import type Office from "./Office"; -import type OfficeFolderHasCustomer from "./OfficeFolderHasCustomer"; -import type OfficeFolderHasStakeholder from "./OfficeFolderHasStakeholder"; +import { + IsNotEmpty, + IsDate, + IsOptional, + ValidateNested, +} from "class-validator"; +import Deed from "./Deed"; +import Document from "./Document"; +import Office from "./Office"; +import OfficeFolderHasCustomer from "./OfficeFolderHasCustomer"; +import OfficeFolderHasStakeholder from "./OfficeFolderHasStakeholder"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class OfficeFolder extends Resource { @IsNotEmpty({ groups: ["create"], message: "Folder number is required" }) @@ -18,12 +24,16 @@ export default class OfficeFolder extends Resource { public archived_description: string | null = null; @IsNotEmpty({ groups: ["create"], message: "Status is required" }) - public status!: EFolderStatus; + public status!: "LIVE" | "ARCHIVED"; @IsNotEmpty({ groups: ["create"], message: "Deed is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Deed) public deed!: Deed; @IsNotEmpty({ groups: ["create"], message: "Office is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Office) public office!: Office; @IsDate() @@ -32,14 +42,22 @@ export default class OfficeFolder extends Resource { @IsDate() public updated_at: Date | null = null; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolderHasCustomer) office_folder_has_customers?: OfficeFolderHasCustomer[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolderHasStakeholder) office_folder_has_stakeholder?: OfficeFolderHasStakeholder[]; + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Document) documents?: Document[]; } export enum EFolderStatus { LIVE = "LIVE", ARCHIVED = "ARCHIVED", } -export type TFolderStatus = EFolderStatus.LIVE | EFolderStatus.ARCHIVED; diff --git a/src/Customer/OfficeFolderHasCustomer.ts b/src/Customer/OfficeFolderHasCustomer.ts index 0ffc3af..5b9534f 100644 --- a/src/Customer/OfficeFolderHasCustomer.ts +++ b/src/Customer/OfficeFolderHasCustomer.ts @@ -1,13 +1,18 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Customer from "."; -import type OfficeFolder from "./OfficeFolder"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import Customer from "."; +import OfficeFolder from "./OfficeFolder"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class OfficeFolderHasCustomer extends Resource { @IsNotEmpty({ groups: ["create"], message: "Customer is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Customer) public customer!: Customer; @IsNotEmpty({ groups: ["create"], message: "Office folder is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolder) public office_folder!: OfficeFolder; @IsDate() diff --git a/src/Customer/OfficeFolderHasStakeholder.ts b/src/Customer/OfficeFolderHasStakeholder.ts index 92b678b..d6367b6 100644 --- a/src/Customer/OfficeFolderHasStakeholder.ts +++ b/src/Customer/OfficeFolderHasStakeholder.ts @@ -1,13 +1,18 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type OfficeFolder from "./OfficeFolder"; -import type User from "../Notary/User"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import OfficeFolder from "./OfficeFolder"; +import User from "../Notary/User"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class OfficeFolderHasStakeholder extends Resource { @IsNotEmpty({ groups: ["create"], message: "User Stakeholder is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => User) public user_stakeholder!: User; @IsNotEmpty({ groups: ["create"], message: "Office folder is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolder) public office_folder!: OfficeFolder; @IsDate() diff --git a/src/Customer/UserHasNotification.ts b/src/Customer/UserHasNotification.ts index 7df2977..8d1135a 100644 --- a/src/Customer/UserHasNotification.ts +++ b/src/Customer/UserHasNotification.ts @@ -1,13 +1,18 @@ -import { IsNotEmpty, IsDate } from "class-validator"; -import type Notification from "./Notification"; -import type User from "../Notary/User"; +import { IsNotEmpty, IsDate, ValidateNested } from "class-validator"; +import Notification from "./Notification"; +import User from "../Notary/User"; import Resource from "../Resource"; +import { Type } from "class-transformer"; export default class UserHasNotification extends Resource { @IsNotEmpty({ groups: ["create"], message: "User is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => User) public user!: User; @IsNotEmpty({ groups: ["create"], message: "Notification is required" }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Notification) public notification!: Notification; @IsDate() @@ -16,7 +21,7 @@ export default class UserHasNotification extends Resource { @IsDate() public updated_at: Date | null = null; } -export type TNotificationStatus = "READ" | "UNREAD"; + export enum ENotificationStatus { READ = "READ", UNREAD = "UNREAD", diff --git a/src/Notary/User.ts b/src/Notary/User.ts index e79c3da..6130861 100644 --- a/src/Notary/User.ts +++ b/src/Notary/User.ts @@ -1,4 +1,9 @@ -import { IsNotEmpty, IsDate, IsOptional, ValidateNested } from "class-validator"; +import { + IsNotEmpty, + IsDate, + IsOptional, + ValidateNested, +} from "class-validator"; import Contact from "../Customer/Contact"; import Document from "../Customer/Document"; import Office from "../Customer/Office"; @@ -24,9 +29,13 @@ export default class User extends Resource { @IsDate() public updated_at: Date | null = null; - @IsOptional() + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => OfficeFolderHasStakeholder) office_folder_has_stakeholders?: OfficeFolderHasStakeholder[]; - @IsOptional() + @IsOptional({ groups: ["create", "update"] }) + @ValidateNested({ groups: ["create", "update"] }) + @Type(() => Document) documents?: Document[]; }