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

export class LoginDto {
  @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: "Your Password",
    example: "Admin@123",
  })
  @IsNotEmpty({
    message: validationMessage(messageKey.field_required, {
      ":field": "password",
    }),
  })
  @IsString()
  password?: string

  @ApiProperty({
    description: "Your Device Id",
    example: "WBE_123",
  })
  @IsString()
  @IsOptional()
  device_id: string

  @ApiProperty({
    description: "API call from which device type",
    example: "android",
  })
  @IsString()
  @IsOptional()
  device_type: string

  @ApiProperty({
    description: "API call from which OS version",
    example: "11.0",
  })
  @IsString()
  @IsOptional()
  @IsOptional()
  os_version?: string

  @ApiProperty({
    description: "fcm token of user device",
    example: "fcm_token",
  })
  @IsString()
  @IsOptional()
  fcm_token: string
}
