/**
 * @aurora-catalyst-generated
 * @source cliter/o-auth/scope.aurora.yaml
 */
import { ApiProperty } from '@nestjs/swagger';

export class OAuthCreateScopeDto {
  @ApiProperty({
    type: String,
    description:
      'Unique identifier for the scope. UUID v4 format, generated automatically on creation.',
  })
  id: string;

  @ApiProperty({
    type: String,
    description:
      'Unique code identifier for the scope. Used in OAuth flows to request specific permissions. Convention: Uppercase, underscore-separated (e.g., READ_USERS, EDIT_POSTS).',
    example: 'EDIT',
  })
  code: string;

  @ApiProperty({
    type: String,
    description:
      'Human-readable name for the scope. Displayed in authorization prompts and admin interfaces.',
  })
  name: string;

  @ApiProperty({
    type: Array,
    description:
      'Array of role IDs that have access to this scope. Links scopes to the IAM role system for permission management. NULL means no role restrictions.',
  })
  roleIds?: string[];
}
