import { IsEmail, IsNotEmpty, IsOptional, IsString, MinLength } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';

export class LoginDto {
  @ApiProperty({
    example: 'admin@xinion.de',
    description: 'E-Mail-Adresse des Benutzers',
  })
  @IsEmail({}, { message: 'Bitte gültige E-Mail-Adresse angeben' })
  @IsNotEmpty({ message: 'E-Mail darf nicht leer sein' })
  email!: string;

  @ApiProperty({
    example: 'SicheresPasswort123!',
    description: 'Passwort (mindestens 8 Zeichen)',
  })
  @IsString()
  @IsNotEmpty({ message: 'Passwort darf nicht leer sein' })
  @MinLength(8, { message: 'Passwort muss mindestens 8 Zeichen lang sein' })
  password!: string;

  @ApiProperty({
    example: '123456',
    description: 'TOTP 2FA-Code (nur wenn 2FA aktiviert)',
    required: false,
  })
  @IsOptional()
  @IsString()
  totpCode?: string;
}
