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