lecoffre-ressources/src/Customer/OfficeFolder.ts
Vincent Alamelle c5a6b902b1 create document
2023-05-03 10:17:38 +02:00

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",
}