forked from yoone/API
99 lines
2.7 KiB
TypeScript
99 lines
2.7 KiB
TypeScript
import { ApiProperty } from '@midwayjs/swagger';
|
|
import { Variation } from '../entity/variation.entity';
|
|
import { WpProduct } from '../entity/wp_product.entity';
|
|
import { Rule, RuleType } from '@midwayjs/validate';
|
|
import { ProductStatus } from '../enums/base.enum';
|
|
|
|
export class VariationDTO extends Variation {}
|
|
|
|
export class WpProductDTO extends WpProduct {
|
|
@ApiProperty({ description: '变体列表', type: VariationDTO, isArray: true })
|
|
variations?: VariationDTO[];
|
|
}
|
|
|
|
export class UpdateVariationDTO {
|
|
@ApiProperty({ description: '产品名称' })
|
|
@Rule(RuleType.string())
|
|
name: string;
|
|
|
|
@ApiProperty({ description: 'SKU' })
|
|
@Rule(RuleType.string().allow(''))
|
|
sku: string;
|
|
|
|
@ApiProperty({ description: '常规价格', type: Number })
|
|
@Rule(RuleType.number())
|
|
regular_price: number; // 常规价格
|
|
|
|
@ApiProperty({ description: '销售价格', type: Number })
|
|
@Rule(RuleType.number())
|
|
sale_price: number; // 销售价格
|
|
|
|
@ApiProperty({ description: '是否促销中', type: Boolean })
|
|
@Rule(RuleType.boolean())
|
|
on_sale: boolean; // 是否促销中
|
|
}
|
|
|
|
export class UpdateWpProductDTO {
|
|
@ApiProperty({ description: '变体名称' })
|
|
@Rule(RuleType.string())
|
|
name: string;
|
|
|
|
@ApiProperty({ description: 'SKU' })
|
|
@Rule(RuleType.string().allow(''))
|
|
sku: string;
|
|
|
|
@ApiProperty({ description: '常规价格', type: Number })
|
|
@Rule(RuleType.number())
|
|
regular_price: number; // 常规价格
|
|
|
|
@ApiProperty({ description: '销售价格', type: Number })
|
|
@Rule(RuleType.number())
|
|
sale_price: number; // 销售价格
|
|
|
|
@ApiProperty({ description: '是否促销中', type: Boolean })
|
|
@Rule(RuleType.boolean())
|
|
on_sale: boolean; // 是否促销中
|
|
}
|
|
|
|
export class QueryWpProductDTO {
|
|
@ApiProperty({ example: '1', description: '页码' })
|
|
@Rule(RuleType.number())
|
|
current: number;
|
|
|
|
@ApiProperty({ example: '10', description: '每页大小' })
|
|
@Rule(RuleType.number())
|
|
pageSize: number;
|
|
|
|
@ApiProperty({ example: 'ZYN', description: '产品名' })
|
|
@Rule(RuleType.string())
|
|
name?: string;
|
|
|
|
@ApiProperty({ example: '1', description: '站点ID' })
|
|
@Rule(RuleType.string())
|
|
siteId?: string;
|
|
|
|
@ApiProperty({ description: '产品状态', enum: ProductStatus })
|
|
@Rule(RuleType.string().valid(...Object.values(ProductStatus)))
|
|
status?: ProductStatus;
|
|
}
|
|
|
|
export class SetConstitutionDTO {
|
|
@ApiProperty({ type: Boolean })
|
|
@Rule(RuleType.boolean())
|
|
isProduct: boolean;
|
|
|
|
@ApiProperty({
|
|
description: '构成成分',
|
|
type: 'array',
|
|
items: {
|
|
type: 'object',
|
|
properties: {
|
|
sku: { type: 'string' },
|
|
quantity: { type: 'number' },
|
|
},
|
|
},
|
|
})
|
|
@Rule(RuleType.array())
|
|
constitution: { sku: string; quantity: number }[] | null;
|
|
}
|