2023-03-29 10:21:25 +02:00

59 lines
1.6 KiB
TypeScript

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",
}