import { ApiProperty } from "@nestjs/swagger"
import { IsEmail, IsNotEmpty, IsStrongPassword } from "class-validator"
import { validationMessage } from "../../../utils/helpers"
import { messageKey } from "../../../constants/message-keys"

export class ResetPasswordDto {
  @ApiProperty({
    description: "Your Email Address",
    example: "admin@admin.com",
  })
  @IsEmail({}, { message: validationMessage(messageKey.email_invalid) })
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "email",
    }),
  })
  email: string

  // @ApiProperty({
  //   description: "Password Reset Token",
  //   example: "y68aqscmmhb",
  // })
  // @IsString()
  // @IsNotEmpty({
  //   message: validationMessage(messageKey.field_required, {
  //     ":field": "password reset token",
  //   }),
  // })
  // password_reset_token: string;

  @ApiProperty({
    description: "Password",
    example: "Password123!",
  })
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "password",
    }),
  })
  @IsStrongPassword(
    {
      minLength: 8,
      minLowercase: 1,
      minNumbers: 1,
      minSymbols: 1,
      minUppercase: 1,
    },
    { message: validationMessage(messageKey.password_validation) },
  )
  password: string
}
