import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { ResidentRole } from '@prisma/client';
import { IsBoolean, IsEmail, IsEnum, IsOptional, IsString, IsUUID } from 'class-validator';

export class CreateResidentDto {
  @ApiProperty() @IsUUID() lotId!: string;

  @ApiProperty({ enum: ResidentRole })
  @IsEnum(ResidentRole)
  role!: ResidentRole;

  @ApiProperty() @IsEmail() email!: string;
  @ApiPropertyOptional() @IsOptional() @IsString() firstName?: string;
  @ApiPropertyOptional() @IsOptional() @IsString() lastName?: string;
  @ApiPropertyOptional() @IsOptional() @IsString() phone?: string;
  @ApiPropertyOptional() @IsOptional() @IsString() password?: string;
  @ApiPropertyOptional({ default: true }) @IsOptional() @IsBoolean() isPrimary?: boolean;
}
