import { ApiProperty } from "@nestjs/swagger";
import {
  ArrayMinSize,
  ArrayUnique,
  IsArray,
  IsBoolean,
  IsOptional,
  IsString,
  IsUrl,
  Length,
} from "class-validator";

export class UpdateWebhookEndpointDto {
  @ApiProperty({ required: false, example: "https://merchant.com/webhooks/payments-v2" })
  @IsOptional()
  @IsUrl({ require_protocol: true, require_tld: false, protocols: ["http", "https"] })
  url?: string;

  @ApiProperty({ required: false, type: [String], example: ["payment_intent.succeeded"] })
  @IsOptional()
  @IsArray()
  @ArrayMinSize(1)
  @ArrayUnique()
  @IsString({ each: true })
  subscribedEvents?: string[];

  @ApiProperty({ required: false, example: false })
  @IsOptional()
  @IsBoolean()
  active?: boolean;

  @ApiProperty({ required: false, example: "Producción" })
  @IsOptional()
  @IsString()
  @Length(1, 200)
  description?: string;
}
