File

src/user/dto/onboard-config.dto.ts

Index

Properties

Properties

condition
Type : string
Decorators :
@IsString()
message
Type : string
Decorators :
@IsString()
import {
  IsArray,
  IsBoolean,
  IsNumber,
  IsOptional,
  IsString,
  ValidateNested,
} from "class-validator";
import { Type } from "class-transformer";

class ValidationObject {
  @IsString()
  condition: string;

  @IsString()
  message: string;
}

class Option {
  @IsString()
  label: string;

  @IsString()
  value: string;
}

export class CMSFieldType {
  @IsString()
  accessor: string;

  @IsNumber()
  @IsOptional()
  id: number;

  @IsString()
  label: string;

  @IsOptional()
  @IsArray()
  @ValidateNested()
  @Type(() => Option)
  options: Option[];

  @IsBoolean()
  @IsOptional()
  required: boolean;

  @IsString()
  section: string;

  @IsString()
  type: string;

  @IsOptional()
  @ValidateNested()
  @Type(() => ValidationObject)
  validation: ValidationObject;
}

export class OnboardEditableFormDto {
  @IsNumber()
  id: number;

  @Type(() => CMSFieldType)
  @IsArray()
  @ValidateNested({ each: true })
  onboardEditableFields: CMSFieldType[];
}

results matching ""

    No results matching ""