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

55 lines
1.6 KiB
TypeScript

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