42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
export * from "../Customer/Document";
|
|
import { Expose, Type } from "class-transformer";
|
|
import DocumentCustomer from "../Customer/Document";
|
|
import { IsNotEmpty, IsOptional, ValidateNested } from "class-validator";
|
|
import OfficeFolder from "./OfficeFolder";
|
|
import Customer from "./Customer";
|
|
import File from "./File";
|
|
import DocumentHistory from "./DocumentHistory";
|
|
import DocumentType from "./DocumentType";
|
|
|
|
export default class Document extends DocumentCustomer {
|
|
@Expose()
|
|
@IsNotEmpty({ groups: ["createFile"], message: "UID is required" })
|
|
public override uid?: string;
|
|
|
|
@Expose()
|
|
@Type(() => DocumentType)
|
|
public override document_type?: DocumentType;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateDocument"] })
|
|
@IsNotEmpty({ groups: ["createDocument"], message: "Folder is required" })
|
|
@ValidateNested({ groups: ["createDocument", "updateDocument"] })
|
|
@Type(() => OfficeFolder)
|
|
public override folder?: OfficeFolder;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateDocument"] })
|
|
@IsNotEmpty({ groups: ["createDocument"], message: "Depositor is required" })
|
|
@ValidateNested({ groups: ["createDocument", "updateDocument"] })
|
|
@Type(() => Customer)
|
|
public override depositor?: Customer;
|
|
|
|
@Expose()
|
|
@Type(() => File)
|
|
public override files?: File[];
|
|
|
|
@Expose()
|
|
@Type(() => DocumentHistory)
|
|
public override document_history?: DocumentHistory[];
|
|
};
|