55 lines
1.6 KiB
TypeScript
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",
|
|
}
|