import { Expose } from "class-transformer"; import { IsNotEmpty, IsNumber, IsOptional, Min } from "class-validator"; import { ApiProperty } from "../../../common/decorator/swggerDocs"; import { IsValidId } from "../../../common/decorator/validation.decorator"; import { ColorModel } from "../../category/models/color.model"; import { MeterageModel } from "../../category/models/meterage.model"; import { SizeModel } from "../../category/models/size.model"; import { WarrantyModel } from "../../warranty/models/warranty.model"; // import { ShipmentModel } from "../../../models/shipment.model"; export class AddVariantDTO { // @Expose() // @IsNotEmpty() // @IsValidId(WarrantyModel) // @ApiProperty({ type: "number", description: "product id", example: 100002 }) // productId: number; @Expose() @IsOptional() @IsNotEmpty() @IsValidId(ColorModel) @ApiProperty({ type: "number", description: "color id ==> one of color,size or meterage should send", example: 1 }) colorId?: number; @Expose() @IsOptional() @IsNotEmpty() @IsValidId(SizeModel) @ApiProperty({ type: "number", description: "size id ==> one of color,size or meterage should send", example: 5 }) sizeId?: number; @Expose() @IsOptional() @IsNotEmpty() @IsValidId(MeterageModel) @ApiProperty({ type: "number", description: "meterage id ==> one of color,size or meterage should send", example: 5 }) meterageId?: number; @Expose() @IsNotEmpty() @IsValidId(WarrantyModel) @ApiProperty({ type: "number", description: "warranty id of the product", example: 102 }) warrantyId: number; @Expose() @IsNotEmpty() @IsNumber() @ApiProperty({ type: "number", description: "maximum number of product can purchase in one order", example: 2 }) order_limit: number; // @Expose() @IsOptional() @IsNotEmpty() @ApiProperty({ type: "string", description: "special code of product for seller only", example: "FPHK10" }) sellerSpecialCode?: string; @Expose() @IsNotEmpty() @Min(1000, { message: "حداقل قیمت برای کالا ۱۰۰۰۰ تومان می باشد " }) @IsNumber() @ApiProperty({ type: "number", description: "the price of product in toman", example: 5432510 }) retail_price: number; //Dimensions @Expose() @IsNotEmpty() @ApiProperty({ type: "number", description: "the weight of product package in gram", example: 250 }) package_weight: number; @Expose() @IsNotEmpty() @ApiProperty({ type: "number", description: "the height of product package in cm", example: 25 }) package_height: number; @Expose() @IsNotEmpty() @ApiProperty({ type: "number", description: "the length of product package in cm", example: 45 }) package_length: number; @Expose() @IsNotEmpty() @ApiProperty({ type: "number", description: "the width of product package in cm", example: 10 }) package_width: number; // @Expose() // @IsNotEmpty() // @IsArray() // @IsNumber({}, { each: true }) // // @IsValidId(ShipmentModel) // @ApiProperty({ type: "Array", description: "the array of shipment provider", example: [101, 102] }) // shipmentsId: number[]; // @Expose() @IsNotEmpty() @ApiProperty({ type: "number", description: "the time take to ship product quantity of product in day", example: 10 }) postingTime: number; // @Expose() @IsNotEmpty() @IsNumber() @ApiProperty({ type: "number", description: "the stock quantity of product", example: 10 }) stock: number; }