import { IsString, IsOptional, IsArray, IsEnum, IsUrl } from 'class-validator';
import { ApiPropertyOptional } from '@nestjs/swagger';
import { UserStatus, UserRole } from '@prisma/client';

export class UpdateProfileDto {
  @ApiPropertyOptional() @IsString() @IsOptional() name?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() headline?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() bio?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() profession?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() company?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() location?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() website?: string;
  @ApiPropertyOptional() @IsString() @IsOptional() linkedin?: string;
  @ApiPropertyOptional() @IsArray() @IsOptional() skills?: string[];
  @ApiPropertyOptional() @IsArray() @IsOptional() achievements?: any[];
  @ApiPropertyOptional() @IsArray() @IsOptional() hobbies?: string[];
  @ApiPropertyOptional() @IsString() @IsOptional() fcmToken?: string;
}

export class AdminUpdateUserDto {
  @ApiPropertyOptional({ enum: UserStatus })
  @IsEnum(UserStatus)
  @IsOptional()
  status?: UserStatus;

  @ApiPropertyOptional({ enum: UserRole })
  @IsEnum(UserRole)
  @IsOptional()
  role?: UserRole;
}
