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" }) public name!: string; @IsNotEmpty({ groups: ["create"], message: "Public description is required" }) public public_description!: string; @IsOptional({ groups: ["create", "update"] }) public private_description: string | null = null; @IsDate() public archived_at: Date | null = null; @IsDate() public created_at: Date | null = null; @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[]; }