From 58e5e3e0d2b03ffb319f2e2aee08adca626ef468 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Sat, 24 Jan 2026 15:36:07 +0330 Subject: [PATCH] product bug --- src/modules/product/dto/create-product.dto.ts | 31 +++++++++++++------ .../product/entities/product.entity.ts | 11 ++++--- .../product/providers/product.service.ts | 3 +- src/seeders/data/product.data.ts | 6 ++-- src/seeders/product.seeder.ts | 3 +- 5 files changed, 35 insertions(+), 19 deletions(-) diff --git a/src/modules/product/dto/create-product.dto.ts b/src/modules/product/dto/create-product.dto.ts index f26e56b..41850e2 100644 --- a/src/modules/product/dto/create-product.dto.ts +++ b/src/modules/product/dto/create-product.dto.ts @@ -4,6 +4,7 @@ import { IsBoolean, IsInt, IsNotEmpty, + IsNumber, IsOptional, IsString, Min, @@ -21,18 +22,28 @@ export class CreateproductDto { @ApiPropertyOptional({ example: 'کارت ویزیت' }) title: string; - @IsArray() - @IsString({ each: true }) - @ApiPropertyOptional({ type: [String] }) - desc: string[]; - - + @IsString() + @ApiPropertyOptional() @IsOptional() - @IsInt() - @Min(0) + desc: string; + + @IsString() + @ApiPropertyOptional() + @IsOptional() + linkUrl: string; + + @IsArray() @Type(() => Number) - @ApiPropertyOptional({ example: 15 }) - prepareTime?: number; + @IsNumber({}, { each: true }) + @ApiPropertyOptional({ type: [Number] }) + quantities: number[]; + + // @IsOptional() + // @IsInt() + // @Min(0) + // @Type(() => Number) + // @ApiPropertyOptional({ example: 15 }) + // prepareTime?: number; @IsOptional() @IsBoolean() diff --git a/src/modules/product/entities/product.entity.ts b/src/modules/product/entities/product.entity.ts index a7c392c..3413885 100644 --- a/src/modules/product/entities/product.entity.ts +++ b/src/modules/product/entities/product.entity.ts @@ -18,11 +18,14 @@ export class Product extends BaseEntity { @Property() title: string; - @Property({ type: 'json' }) - desc: string[] + @Property({ type: 'string' }) + desc: string - @Property() - prepareTime: number; + @Property({ type: 'json' }) + quantities: number[] + + // @Property() + // prepareTime: number; @Property({ type: 'text', nullable: true }) linkUrl?: string; diff --git a/src/modules/product/providers/product.service.ts b/src/modules/product/providers/product.service.ts index 7207af1..9f22ee5 100644 --- a/src/modules/product/providers/product.service.ts +++ b/src/modules/product/providers/product.service.ts @@ -29,7 +29,8 @@ export class ProductService { order: rest.order ?? null, title: rest.title, desc: rest.desc, - prepareTime: rest.prepareTime ?? 0, + // prepareTime: rest.prepareTime ?? 0, + quantities: rest.quantities, images: rest.images ?? undefined, category, }; diff --git a/src/seeders/data/product.data.ts b/src/seeders/data/product.data.ts index 3969f05..afa8740 100644 --- a/src/seeders/data/product.data.ts +++ b/src/seeders/data/product.data.ts @@ -4,20 +4,20 @@ export interface productData { isActive: boolean; categoryTitle: string, images: string[]; - desc: string[]; + desc: string; } export const productsData: productData[] = [ { title: 'کارت ویزیت', - desc: ['توضیح کار ویزیت'], + desc: 'توضیح کار ویزیت', categoryTitle: 'چاپ', isActive: true, images: ["https://dmenu.danakcorp.com/uploads/images/product/product_1715711043900.png"], }, { title: 'بروشور', - desc: ['توضیح '], + desc: 'توضیح ', categoryTitle: 'چاپ', isActive: true, images: ["https://dmenu.danakcorp.com/uploads/images/product/product_1715711043900.png"], diff --git a/src/seeders/product.seeder.ts b/src/seeders/product.seeder.ts index 220c1d8..d0eba8e 100644 --- a/src/seeders/product.seeder.ts +++ b/src/seeders/product.seeder.ts @@ -26,7 +26,8 @@ export class ProductsSeeder { desc: productData.desc, category, isActive: productData.isActive, - prepareTime: 10, + // prepareTime: 10, + quantities: [100, 200], images: productData.images, order: 1 });