// in dto/api-create.dto.ts
import { ApiPropertyOptional } from '@nestjs/swagger';
import { IsEnum, IsNotEmpty, IsOptional, IsString } from 'class-validator';
import { ApiKeyTier } from '../entities/api-key.entity';

export class CreateApiKeyDto {
  @IsString()
  @IsNotEmpty()
  @ApiPropertyOptional()
  name: string;

  @IsEnum(ApiKeyTier)
  @IsOptional()
  @ApiPropertyOptional({ enum: ApiKeyTier, default: ApiKeyTier.FREE })
  tier?: ApiKeyTier = ApiKeyTier.FREE;

  @IsString({ each: true })
  @IsOptional()
  @ApiPropertyOptional({ type: [String], example: ['read', 'write'] })
  permissions?: string[] = [];
}
