lecoffre-ressources/src/Customer/DocumentType.ts

42 lines
1.4 KiB
TypeScript

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[];
}