93 lines
2.6 KiB
TypeScript
93 lines
2.6 KiB
TypeScript
export * from "../Customer/Contact";
|
|
import { Expose, Type } from "class-transformer";
|
|
import ContactCustomer, { ECivility } from "../Customer/Contact";
|
|
import {
|
|
IsEmail,
|
|
IsNotEmpty,
|
|
IsOptional,
|
|
Matches,
|
|
NotEquals,
|
|
ValidateNested,
|
|
} from "class-validator";
|
|
import Address from "./Address";
|
|
|
|
export default class Contact extends ContactCustomer {
|
|
@Expose()
|
|
public override uid?: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateCustomer"] })
|
|
@NotEquals(null || "", {
|
|
groups: ["updateCustomer"],
|
|
message: "Prénom ne peut pas être vide",
|
|
})
|
|
@IsNotEmpty({
|
|
groups: ["createCustomer"],
|
|
message: "Prénom ne peut pas être vide",
|
|
})
|
|
public override first_name!: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateCustomer"] })
|
|
@NotEquals(null || "", {
|
|
groups: ["updateCustomer"],
|
|
message: "Nom ne peut pas être vide",
|
|
})
|
|
@IsNotEmpty({
|
|
groups: ["createCustomer"],
|
|
message: "Nom ne peut pas être vide",
|
|
})
|
|
public override last_name!: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateCustomer"] })
|
|
@NotEquals(null || "", {
|
|
groups: ["updateCustomer"],
|
|
message: "Email ne peut pas être vide",
|
|
})
|
|
@IsNotEmpty({
|
|
groups: ["createCustomer"],
|
|
message: "Email ne peut pas être vide",
|
|
})
|
|
@IsEmail(
|
|
{},
|
|
{
|
|
groups: ["createCustomer", "updateCustomer"],
|
|
message: "Format de l'email incorrect",
|
|
}
|
|
)
|
|
public override email!: string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateCustomer"] })
|
|
@NotEquals(null || "", {
|
|
groups: ["updateCustomer"],
|
|
message: "Numéro de téléphone ne peut pas être vide",
|
|
})
|
|
@IsNotEmpty({
|
|
groups: ["createCustomer"],
|
|
message: "Numéro de téléphone ne peut pas être vide",
|
|
})
|
|
@Matches(/^\+[2-9]{2,3}[0-9]{9}$/, {
|
|
groups: ["createCustomer", "updateCustomer"],
|
|
message:
|
|
"Le numéro de téléphone doit être au format 0X XX XX XX XX ou +33X XX XX XX XX",
|
|
})
|
|
public override cell_phone_number!: string;
|
|
|
|
@Expose()
|
|
@IsOptional()
|
|
public override phone_number?: string | null = null;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["updateCustomer"] })
|
|
@IsNotEmpty({ groups: ["createCustomer"], message: "Civility is required" })
|
|
public override civility!: ECivility | string;
|
|
|
|
@Expose()
|
|
@IsOptional({ groups: ["createCustomer", "updateCustomer"] })
|
|
@ValidateNested({ groups: ["createCustomer", "updateCustomer"] })
|
|
@Type(() => Address)
|
|
public override address?: Address;
|
|
}
|