79 lines
2.5 KiB
TypeScript
79 lines
2.5 KiB
TypeScript
export * from "../Customer/OfficeFolder";
|
|
import { Expose, Type } from "class-transformer";
|
|
import OfficeFolderCustomer from "../Customer/OfficeFolder";
|
|
import { IsNotEmpty, IsOptional, ValidateNested } from "class-validator";
|
|
import User from "./User";
|
|
import Deed from "./Deed";
|
|
import Customer from "./Customer";
|
|
import Document from "./Document";
|
|
import Office from "./Office";
|
|
import EFolderStatus from "../Customer/EFolderStatus";
|
|
import OfficeFolderAnchor from "./OfficeFolderAnchor";
|
|
|
|
export default class OfficeFolder extends OfficeFolderCustomer {
|
|
@Expose()
|
|
@IsNotEmpty({ groups: ["createDocument"], message: "UID is required" })
|
|
public override uid?: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
@IsNotEmpty({
|
|
groups: ["createFolder"],
|
|
message: "folder number is required",
|
|
})
|
|
public override folder_number!: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
@IsNotEmpty({ groups: ["createFolder"], message: "Name is required" })
|
|
public override name!: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
public override description: string | null = null;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
public override archived_description: string | null = null;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
public override status: EFolderStatus | string = EFolderStatus.LIVE;
|
|
|
|
@Expose()
|
|
@IsNotEmpty({ groups: ["createFolder"], message: "Office is required" })
|
|
@ValidateNested({ groups: ["createFolder"] })
|
|
@Type(() => Office)
|
|
public override office?: Office;
|
|
|
|
@Expose()
|
|
@IsNotEmpty({ groups: ["createFolder"], message: "Deed type is required" })
|
|
@ValidateNested({ groups: ["createFolder"] })
|
|
@Type(() => Deed)
|
|
public deed?: Deed;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
@ValidateNested({ groups: ["createFolder", "updateFolder"] })
|
|
@Type(() => User)
|
|
stakeholders?: User[];
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
@ValidateNested({ groups: ["updateFolder"] })
|
|
@Type(() => Customer)
|
|
customers?: Customer[];
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
@ValidateNested({ groups: ["updateFolder"] })
|
|
@Type(() => Document)
|
|
documents?: Document[];
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateFolder"] })
|
|
@ValidateNested({ groups: ["updateFolder"] })
|
|
@Type(() => Document)
|
|
folder_anchor?: OfficeFolderAnchor | null = null;
|
|
}
|