import { IsNotEmpty, IsDate, IsOptional, ValidateNested } from "class-validator"; import Document from "./Document"; import Office from "./Office"; import Resource from "../Resource"; import { Expose, Type } from "class-transformer"; import Deed from "./Deed"; import DeedType from "./DeedType"; export default class DocumentType extends Resource { @Expose() @IsNotEmpty({ groups: ["createDocument" , "createDeedType", "updateFolder", "updateDeed"] ,message: "UID is required" }) public uid?: string; @Expose() @IsOptional({ groups: ["updateDocumentType"] }) @IsNotEmpty({ groups: ["createDocumentType"], message: "Name is required" }) public name!: string; @Expose() @IsOptional({ groups: ["updateDocumentType"] }) @IsNotEmpty({ groups: ["createDocumentType"], message: "Public description is required" }) public public_description!: string; @Expose() @IsOptional({ groups: ["updateDocumentType"] }) @IsOptional({ groups: ["createDocumentType"] }) public private_description: string | null = null; @Expose() @IsOptional({ groups: ["updateDocumentType"] }) @IsDate() public archived_at: Date | null = null; @Expose() @IsOptional({ groups: ["updateDocumentType"] }) @IsNotEmpty({ groups: ["createDocumentType"], message: "Office is required" }) @ValidateNested({ groups: ["createDocumentType"] }) @Type(() => Office) public office?: Office; @Expose() @IsDate() public created_at: Date | null = null; @Expose() @IsDate() public updated_at: Date | null = null; @Expose() @Type(() => Document) public documents?: Document[]; @Expose() @Type(() => Deed) public deeds?: Deed[]; @Expose() @Type(() => DeedType) public deed_type?: DeedType[]; }