defined product model dto

This commit is contained in:
hannathkadher
2024-12-20 08:45:52 +04:00
parent bb63ac08e3
commit e18214c717
9 changed files with 73 additions and 8 deletions

View File

@ -1,5 +1,5 @@
export * from './create-space-model.dto';
export * from './create-space-product-item-model.dto';
export * from './product-item-model-dtos';
export * from './product-model-dtos';
export * from './project-param.dto';
export * from './update-space-model.dto';

View File

@ -0,0 +1,12 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString } from 'class-validator';
export class BaseProductItemModelDto {
@ApiProperty({
description: 'ID of the product item model',
example: 'product-item-uuid',
})
@IsNotEmpty()
@IsString()
productModelUuid: string;
}

View File

@ -0,0 +1,3 @@
import { BaseProductItemModelDto } from './base-product-item-model.dto';
export class DeleteProductItemModelDto extends BaseProductItemModelDto {}

View File

@ -0,0 +1,4 @@
export * from './create-product-item-model.dto';
export * from './update-prodct-item-model.dto';
export * from './delete-product-item-model.dto';
export * from './product-item-model-modification'

View File

@ -0,0 +1,34 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsArray, ValidateNested, IsOptional } from 'class-validator';
import { CreateProductItemModelDto } from './create-product-item-model.dto';
import { UpdateProductItemModelDto } from './update-prodct-item-model.dto';
import { DeleteProductItemModelDto } from './delete-product-item-model.dto';
export class ProductItemModelModificationDto {
@IsArray()
@ApiProperty({
description: 'Create the product item model ',
type: [CreateProductItemModelDto],
})
@ValidateNested({ each: true })
@IsOptional()
add?: CreateProductItemModelDto[];
@IsArray()
@ApiProperty({
description: 'Update the product item model ',
type: [UpdateProductItemModelDto],
})
@ValidateNested({ each: true })
@IsOptional()
update?: UpdateProductItemModelDto[];
@IsArray()
@ApiProperty({
description: 'Delete the product item model ',
type: [DeleteProductItemModelDto],
})
@IsOptional()
delete?: DeleteProductItemModelDto[];
}

View File

@ -0,0 +1,13 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString } from 'class-validator';
import { BaseProductItemModelDto } from './base-product-item-model.dto';
export class UpdateProductItemModelDto extends BaseProductItemModelDto {
@ApiProperty({
description: 'Specific name for the product item',
example: 'Light 1',
})
@IsNotEmpty()
@IsString()
tag: string;
}

View File

@ -8,7 +8,7 @@ import {
ArrayNotEmpty,
} from 'class-validator';
import { Type } from 'class-transformer';
import { CreateProductItemModelDto } from '../create-space-product-item-model.dto';
import { CreateProductItemModelDto } from '../product-item-model-dtos/create-product-item-model.dto';
export class CreateProductModelDto {
@ApiProperty({

View File

@ -2,14 +2,13 @@ import { ApiProperty } from '@nestjs/swagger';
import { Type } from 'class-transformer';
import {
IsNotEmpty,
IsString,
IsInt,
IsArray,
ArrayNotEmpty,
ValidateNested,
} from 'class-validator';
import { CreateProductItemModelDto } from '../create-space-product-item-model.dto';
import { BaseProductModelDto } from './base-product-model.dto';
import { ProductItemModelModificationDto } from '../product-item-model-dtos';
export class UpdateProductModelDto extends BaseProductModelDto {
@ApiProperty({
@ -21,12 +20,12 @@ export class UpdateProductModelDto extends BaseProductModelDto {
productCount: number;
@ApiProperty({
description: 'Specific names for each product item',
type: [CreateProductItemModelDto],
description: 'Update product item',
type: [ProductItemModelModificationDto],
})
@IsArray()
@ArrayNotEmpty()
@ValidateNested({ each: true })
@Type(() => CreateProductItemModelDto)
items: CreateProductItemModelDto[];
@Type(() => ProductItemModelModificationDto)
items: ProductItemModelModificationDto[];
}