61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
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[];
|
|
}
|