form builder module

This commit is contained in:
2026-01-28 14:59:25 +03:30
parent e44a239ef0
commit 8121b27248
27 changed files with 151 additions and 129 deletions
@@ -0,0 +1,16 @@
import { IsString, IsOptional, IsInt, Min, IsNotEmpty } from 'class-validator';
import { ApiPropertyOptional, ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
export class CreateFieldOptionDto {
@IsString()
@ApiProperty()
value: string;
@IsOptional()
@IsInt()
@Min(0)
@Type(() => Number)
@ApiPropertyOptional({ example: 1 })
order?: number;
}
@@ -0,0 +1,32 @@
import { IsString, IsOptional, IsBoolean, IsInt, Min, IsEnum, IsNotEmpty } from 'class-validator';
import { ApiPropertyOptional, ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import { FieldType } from '../interface/print';
export class CreateFieldDto {
@IsString()
@ApiProperty()
name: string;
@IsBoolean()
@Type(() => Boolean)
@ApiPropertyOptional({ example: true })
isRequired: boolean;
@IsBoolean()
@Type(() => Boolean)
@ApiPropertyOptional({ example: true })
multiple: boolean;
@IsNotEmpty()
@IsEnum(FieldType)
@ApiProperty({ enum: FieldType, example: FieldType.select })
type: FieldType;
@IsOptional()
@IsInt()
@Min(0)
@Type(() => Number)
@ApiPropertyOptional({ example: 1 })
order?: number;
}
@@ -0,0 +1,6 @@
import { PartialType } from '@nestjs/swagger';
import { CreateFieldOptionDto } from './create-field-option.dto';
export class UpdateFieldOptionDto extends PartialType(CreateFieldOptionDto) {
}
@@ -0,0 +1,4 @@
import { PartialType } from '@nestjs/swagger';
import { CreateFieldDto } from './create-field.dto';
export class UpdateFieldDto extends PartialType(CreateFieldDto) { }