import { IsNotEmpty, IsDate, IsEmail, IsOptional, ValidateNested } from "class-validator"; import Address from "./Address"; import Customer from "."; import User from "../Notary"; import Resource from "../Resource"; import { Type } from "class-transformer"; export default class Contact extends Resource { @IsNotEmpty({ groups: ["create"], message: "First name is required" }) @IsOptional({ groups: ["update"] }) public first_name!: string; @IsNotEmpty({ groups: ["create"], message: "Last name is required" }) @IsOptional({ groups: ["update"] }) public last_name!: string; @IsNotEmpty({ groups: ["create"] }) @IsEmail({}, { groups: ["create", "update"], message: "Email is not valid" }) public email!: string; @IsNotEmpty({ groups: ["create"] }) public cell_phone_number!: string; public phone_number!: string; @IsNotEmpty({ groups: ["create"], message: "Civility is required" }) public civility!: ECivility | string; @IsNotEmpty({ groups: ["create"], message: "Address is required" }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => Address) public address!: Address; @IsDate() public created_at: Date | null = null; @IsDate() public updated_at: Date | null = null; @IsOptional({ groups: ["create", "update"] }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => User) public user?: User | null = null; @IsOptional({ groups: ["create", "update"] }) @ValidateNested({ groups: ["create", "update"] }) @Type(() => Customer) public customer?: Customer | null = null; } export enum ECivility { MALE = "MALE", FEMALE = "FEMALE", OTHERS = "OTHERS", }