96 lines
1.6 KiB
TypeScript
96 lines
1.6 KiB
TypeScript
import {
|
|
IsEmail,
|
|
IsEnum,
|
|
IsNotEmpty,
|
|
IsOptional,
|
|
IsString,
|
|
MinLength,
|
|
Matches,
|
|
} from 'class-validator';
|
|
|
|
export class CreateMerchantPartnerDto {
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(2)
|
|
name: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(2)
|
|
legalName: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsEmail()
|
|
email: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
phone?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
address?: string;
|
|
|
|
// Propriétaire DCB_PARTNER
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(3)
|
|
dcbPartnerOwnerUsername: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsEmail()
|
|
dcbPartnerOwnerEmail: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(2)
|
|
dcbPartnerOwnerFirstName: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(2)
|
|
dcbPartnerOwnerLastName: string;
|
|
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(8)
|
|
@Matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/, {
|
|
message: 'Password must contain at least one uppercase letter, one lowercase letter, one number and one special character',
|
|
})
|
|
dcbPartnerOwnerPassword: string;
|
|
}
|
|
|
|
export class UpdateMerchantPartnerDto {
|
|
@IsOptional()
|
|
@IsString()
|
|
@MinLength(2)
|
|
name?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
@MinLength(2)
|
|
legalName?: string;
|
|
|
|
@IsOptional()
|
|
@IsEmail()
|
|
email?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
phone?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
address?: string;
|
|
|
|
@IsOptional()
|
|
@IsEnum(['ACTIVE', 'SUSPENDED', 'PENDING'])
|
|
status?: 'ACTIVE' | 'SUSPENDED' | 'PENDING';
|
|
}
|
|
|
|
export class SuspendMerchantPartnerDto {
|
|
@IsNotEmpty()
|
|
@IsString()
|
|
@MinLength(5)
|
|
reason: string;
|
|
} |