@@ -13,6 +13,7 @@ import {
|
||||
Max,
|
||||
MinLength,
|
||||
ValidateIf,
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
|
||||
export class UpdateStoreStatusDto {
|
||||
@@ -1302,6 +1303,111 @@ export class UpdateProductDto {
|
||||
detailContent?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
class AdminSpecValueDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
id?: string;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
name: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
sortOrder?: number;
|
||||
}
|
||||
|
||||
class AdminSpecAttrDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
id?: string;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
name: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
sortOrder?: number;
|
||||
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => AdminSpecValueDto)
|
||||
values: AdminSpecValueDto[];
|
||||
}
|
||||
|
||||
export class SaveProductSpecsDto {
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => AdminSpecAttrDto)
|
||||
attrs: AdminSpecAttrDto[];
|
||||
}
|
||||
|
||||
class AdminSkuRowDto {
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
id?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@IsString({ each: true })
|
||||
specValueIds?: string[];
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
skuCode?: string;
|
||||
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
barcode69: string;
|
||||
|
||||
@IsNumber()
|
||||
price: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
benefitAmount?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['DRAFT', 'ON_SALE', 'OFF_SALE'])
|
||||
status?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
allowOnSitePickup?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
allowOnlinePurchase?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
allowCrossCityDelivery?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsIn(['BOTTLE', 'BOX'])
|
||||
saleUnit?: 'BOTTLE' | 'BOX';
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
bottlesPerUnit?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
isDefault?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
sortOrder?: number;
|
||||
}
|
||||
|
||||
export class SaveProductSkusDto {
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => AdminSkuRowDto)
|
||||
skus: AdminSkuRowDto[];
|
||||
}
|
||||
|
||||
class ProductDetailFeatureInputDto {
|
||||
@IsString()
|
||||
icon: string;
|
||||
|
||||
Reference in New Issue
Block a user