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; }