import { ApiProperty } from "@nestjs/swagger";
import { MerchantStatus } from "@prisma/client";
import { IsEmail, IsEnum, IsOptional, IsString, Length, Matches } from "class-validator";

export class UpdateMerchantDto {
  @ApiProperty({ required: false, example: "Acme S.A." })
  @IsOptional()
  @IsString()
  @Length(2, 120)
  name?: string;

  @ApiProperty({ required: false, example: "billing@acme.com.py", format: "email" })
  @IsOptional()
  @IsEmail()
  email?: string;

  @ApiProperty({ required: false, example: "PY", description: "ISO 3166-1 alpha-2 en mayúsculas." })
  @IsOptional()
  @IsString()
  @Matches(/^[A-Z]{2}$/, { message: "defaultCountry must be uppercase ISO 3166-1 alpha-2" })
  defaultCountry?: string;

  @ApiProperty({ required: false, enum: MerchantStatus, example: MerchantStatus.active })
  @IsOptional()
  @IsEnum(MerchantStatus)
  status?: MerchantStatus;
}
