export * from "../Customer/OfficeFolder"; import { Expose, Type } from "class-transformer"; import OfficeFolderCustomer from "../Customer/OfficeFolder"; import { IsNotEmpty, IsOptional, NotEquals, 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() @NotEquals(null || "", { groups: ["updateFolder"], message: "Numéro de dossier ne peut pas être vide", }) @IsNotEmpty({ groups: ["createFolder"], message: "Numéro de dossier ne peut pas être vide", }) public override folder_number!: string; @Expose() @NotEquals(null || "", { groups: ["updateFolder"], message: "Nom de dossier ne peut pas être vide", }) @IsNotEmpty({ groups: ["createFolder"], message: "Nom de dossier ne peut pas être vide", }) 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) public override customers?: Customer[]; @Expose() @IsOptional({ groups: ["updateFolder"] }) @ValidateNested({ groups: ["updateFolder"] }) @Type(() => Document) documents?: Document[]; @Expose() @IsOptional({ groups: ["updateFolder"] }) @ValidateNested({ groups: ["updateFolder"] }) @Type(() => OfficeFolderAnchor) folder_anchor?: OfficeFolderAnchor | null = null; }