import { ApiPropertyOptional } from '@nestjs/swagger';
import {
  IsEmail,
  IsOptional,
  IsString,
  MaxLength,
  IsArray,
} from 'class-validator';

export class UpdateManagedUserDto {
  @ApiPropertyOptional({ example: 'New Name' })
  @IsOptional()
  @IsString()
  @MaxLength(120)
  name?: string;

  @ApiPropertyOptional({ example: 'newemail@cashi.in' })
  @IsOptional()
  @IsEmail()
  email?: string;

  @ApiPropertyOptional({ example: '+919876543210' })
  @IsOptional()
  @IsString()
  @MaxLength(20)
  phone?: string;

  @ApiPropertyOptional({
    description:
      'Optional permission keys (useful for SUBADMIN/SUPERADMIN feature gating).',
    example: ['dashboard', 'coupons'],
  })
  @IsOptional()
  @IsArray()
  permissions?: string[];
}
