67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
import {
|
|
IsNotEmpty,
|
|
IsDate,
|
|
IsOptional,
|
|
ValidateNested,
|
|
} from "class-validator";
|
|
import Deed from "./Deed";
|
|
import Document from "./Document";
|
|
import Office from "./Office";
|
|
import OfficeFolderHasCustomer from "./OfficeFolderHasCustomer";
|
|
import OfficeFolderHasStakeholder from "./OfficeFolderHasStakeholder";
|
|
import Resource from "../Resource";
|
|
import { Type } from "class-transformer";
|
|
|
|
export default class OfficeFolder extends Resource {
|
|
@IsNotEmpty({ groups: ["update" , "createDocument"] ,message: "UID is required" })
|
|
public uid?: string;
|
|
|
|
@IsNotEmpty({ groups: ["create" , "createFolder"], message: "Folder number is required" })
|
|
public folder_number!: string;
|
|
|
|
@IsNotEmpty({ groups: ["create" , "createFolder"], message: "Name is required" })
|
|
public name!: string;
|
|
|
|
@IsNotEmpty({ groups: ["createFolder"], message: "Description is required" })
|
|
public description: string | null = null;
|
|
|
|
public archived_description: string | null = null;
|
|
|
|
public status: EFolderStatus | string = EFolderStatus.LIVE;
|
|
|
|
@IsNotEmpty({ groups: ["create", "createFolder"], message: "Deed is required" })
|
|
@ValidateNested({ groups: ["create" , "createFolder"] })
|
|
@Type(() => Deed)
|
|
public deed!: Deed;
|
|
|
|
@IsNotEmpty({ groups: ["create" , "createFolder"], message: "Office is required" })
|
|
@ValidateNested({ groups: ["create" , "createFolder"] })
|
|
@Type(() => Office)
|
|
public office!: Office;
|
|
|
|
@IsDate()
|
|
public created_at: Date | null = null;
|
|
|
|
@IsDate()
|
|
public updated_at: Date | null = null;
|
|
|
|
@IsOptional({ groups: ["create", "update"] })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => OfficeFolderHasCustomer)
|
|
office_folder_has_customers?: OfficeFolderHasCustomer[];
|
|
|
|
@IsOptional({ groups: ["create", "update"] })
|
|
@ValidateNested({ groups: ["create", "update" , "createFolder"] })
|
|
@Type(() => OfficeFolderHasStakeholder)
|
|
office_folder_has_stakeholder?: OfficeFolderHasStakeholder[];
|
|
|
|
@IsOptional({ groups: ["create", "update"] })
|
|
@ValidateNested({ groups: ["create", "update"] })
|
|
@Type(() => Document)
|
|
documents?: Document[];
|
|
}
|
|
export enum EFolderStatus {
|
|
LIVE = "LIVE",
|
|
ARCHIVED = "ARCHIVED",
|
|
}
|