import { ApiProperty } from "@nestjs/swagger";

export class ApiErrorBody {
  @ApiProperty({ example: "validation_error", description: "Código corto y estable del error." })
  code!: string;

  @ApiProperty({
    example: "email must be an email",
    description: "Mensaje legible para humanos. No usar para lógica de cliente.",
  })
  message!: string;

  @ApiProperty({
    required: false,
    description: "Detalles adicionales (campo a campo, IDs relacionados, etc.).",
    additionalProperties: true,
  })
  details?: Record<string, unknown>;
}

export class ApiErrorResponse {
  @ApiProperty({ type: ApiErrorBody })
  error!: ApiErrorBody;
}
