import { IsString, IsNotEmpty, Length, Matches, IsOptional } from 'class-validator';

// 发送验证码
export class SendCodeDto {
  @IsString()
  @IsNotEmpty({ message: '手机号不能为空' })
  @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' })
  phone: string;
}

// 验证码注册
export class MerchantRegisterDto {
  @IsString()
  @IsNotEmpty({ message: '手机号不能为空' })
  @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' })
  phone: string;

  @IsString()
  @IsNotEmpty({ message: '验证码不能为空' })
  @Length(6, 6, { message: '验证码为6位数字' })
  code: string;

  @IsString()
  @IsNotEmpty({ message: '联系人姓名不能为空' })
  @Length(2, 50, { message: '联系人姓名长度为2-50位' })
  contactName: string;

  @IsOptional()
  @IsString()
  @Matches(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/, { message: '邮箱格式不正确' })
  email?: string;

  @IsOptional()
  @IsString()
  @Length(6, 20, { message: '密码长度为6-20位' })
  password?: string;
}

// 登录（支持验证码或密码）
export class LoginDto {
  @IsString()
  @IsNotEmpty({ message: '手机号不能为空' })
  @Matches(/^1[3-9]\d{9}$/, { message: '手机号格式不正确' })
  phone: string;

  @IsOptional()
  @IsString()
  @Length(6, 6, { message: '验证码为6位数字' })
  code?: string;

  @IsOptional()
  @IsString()
  @Length(6, 20, { message: '密码长度为6-20位' })
  password?: string;
}
