import { IsNotEmpty, IsString, Matches } from 'class-validator'; import { BaseEntity } from '../../meta/entity/base-entity.entity'; import { ENTITYTYPE_USER } from '../../../constant/global.constant'; import { Expose } from 'class-transformer'; export class CreateUserDto extends BaseEntity { constructor() { super(); this.entity_type = ENTITYTYPE_USER; } @IsString() @IsNotEmpty() @Matches(/^[A-Za-z][A-Za-z]*$/, { message: 'enter valid first name' }) @Expose() first_name: string; @IsString() @IsNotEmpty() @Matches(/^[A-Za-z][A-Za-z]*$/, { message: 'enter valid last name' }) @Expose() last_name: string; @IsString() @IsNotEmpty() @Matches( /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/, { message: 'enter valid email' }, ) email_id: string; @IsString() @IsNotEmpty() @Matches( /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/, { message: 'Password must be at least 8 characters long, contain at least one uppercase letter, one lowercase letter, one digit, and one special character', }, ) @Expose() password: string; @IsString() @IsNotEmpty() @Matches(/^[0-9]{10}$/, { message: 'enter valid contact number' }) @Expose() mobile: string; @Expose() roles: any[]; is_firstlogin: number; invitation_status: string; is_defaultadmin: number; is_customer: number; appcode: string; is_factory: number; access: any[]; }