import { IsNotEmpty, IsDate, IsOptional, ValidateNested, } from "class-validator"; import Address from "./Address"; import DeedType from "./DeedType"; import OfficeFolder from "./OfficeFolder"; import User from "../Notary/User"; import Resource from "../Resource"; import { Type } from "class-transformer"; export default class Office extends Resource { @IsNotEmpty({ groups: ["create"], message: "ID IdNote is required" }) public idNot!: string; @IsNotEmpty({ groups: ["create"], message: "Name is required" }) public name!: string; @IsNotEmpty({ groups: ["create"], message: "CRPCEN is required" }) public crpcen!: string; @IsNotEmpty({ groups: ["create"], message: "Address is required" }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => Address) public address!: Address; @IsNotEmpty({ groups: ["create"], message: "Office status is required" }) public office_status!: EOfficeStatus | string; @IsDate() public created_at: Date | null = null; @IsDate() public updated_at: Date | null = null; @IsOptional({ groups: ["create", "update"] }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => DeedType) public deed_types?: DeedType[]; @IsOptional({ groups: ["create", "update"] }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => User) public users?: User[]; @IsOptional({ groups: ["create", "update"] }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => OfficeFolder) public office_folders?: OfficeFolder[]; } export enum EOfficeStatus { ACTIVATED = "ACTIVATED", DESACTIVATED = "DESACTIVATED", }