/
user-registration.dto.ts
44 lines (36 loc) · 1.09 KB
/
user-registration.dto.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { IsDefined, IsEmail, IsOptional, MinLength, Matches, MaxLength, IsString, IsEnum } from 'class-validator';
import { JobTitleEnum, passwordConstraints, ProductUseCases, SignUpOriginEnum } from '@novu/shared';
export class UserRegistrationBodyDto {
@IsDefined()
@IsEmail()
email: string;
@IsDefined()
@MinLength(passwordConstraints.minLength)
@MaxLength(passwordConstraints.maxLength)
@Matches(passwordConstraints.pattern, {
message:
// eslint-disable-next-line max-len
'The password must contain minimum 8 and maximum 64 characters, at least one uppercase letter, one lowercase letter, one number and one special character #?!@$%^&*()-',
})
password: string;
@IsDefined()
@IsString()
firstName: string;
@IsOptional()
@IsString()
lastName?: string;
@IsOptional()
@IsString()
organizationName?: string;
@IsOptional()
@IsEnum(SignUpOriginEnum)
origin?: SignUpOriginEnum;
@IsOptional()
@IsEnum(JobTitleEnum)
jobTitle?: JobTitleEnum;
@IsString()
@IsOptional()
domain?: string;
@IsOptional()
productUseCases?: ProductUseCases;
}