import { PartialType } from '@nestjs/mapped-types';
import { IsInt, IsOptional, IsString, Matches, MaxLength, Min } from 'class-validator';

export class CreateTradingAccountDto {
  @IsString()
  @MaxLength(120)
  name!: string;

  @IsOptional()
  @IsString()
  @Matches(/^#[0-9a-fA-F]{6}$|^[a-zA-Z0-9_-]{1,24}$/)
  color?: string;

  @IsOptional()
  @IsString()
  @MaxLength(80)
  exchange?: string;

  @IsOptional()
  @IsString()
  @MaxLength(5000)
  description?: string;
}

export class UpdateTradingAccountDto extends PartialType(CreateTradingAccountDto) {
  @IsInt()
  @Min(1)
  version!: number;
}
