32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
export * from "../Customer/Customer";
|
|
import { Expose, Type } from "class-transformer";
|
|
import CustomerCustomer, { ECustomerStatus } from "../Customer/Customer";
|
|
import { IsNotEmpty, IsOptional, ValidateNested } from "class-validator";
|
|
import Contact from "./Contact";
|
|
import OfficeFolder from "./OfficeFolder";
|
|
import Document from "./Document";
|
|
|
|
export default class Customer extends CustomerCustomer {
|
|
@Expose()
|
|
@IsNotEmpty({ groups: ["updateFolder", "createDocument"] ,message: "UID is required" })
|
|
public override uid?: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups : ["updateCustomer"]})
|
|
public override status!: ECustomerStatus | string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups : ["updateCustomer"]})
|
|
@IsNotEmpty({ groups: ["createCustomer"], message: "Contact is required" })
|
|
@ValidateNested({ groups: ["createCustomer", "updateCustomer"] })
|
|
@Type(() => Contact)
|
|
public override contact?: Contact;
|
|
|
|
@Expose()
|
|
@Type(() => OfficeFolder)
|
|
public override office_folders?: OfficeFolder[];
|
|
|
|
@Expose()
|
|
@Type(() => Document)
|
|
public override documents?: Document[];
|
|
}; |