import { ApiProperty } from '@midwayjs/swagger'; import { Rule, RuleType } from '@midwayjs/validate'; import dayjs = require('dayjs'); export class OrderStatisticsParams { @ApiProperty() @Rule(RuleType.date().default(dayjs().subtract(1, 'month'))) startDate: Date; @ApiProperty() @Rule(RuleType.date().default(dayjs().subtract(1, 'month'))) endDate: Date; @ApiProperty() @Rule(RuleType.string().allow(null)) keyword?: string; @ApiProperty() @Rule(RuleType.number().allow(null)) siteId?: number; @ApiProperty({ enum: ['all', 'first_purchase', 'repeat_purchase'], default: 'all', }) @Rule(RuleType.string().valid('all', 'first_purchase', 'repeat_purchase')) purchaseType: string; @ApiProperty({ enum: ['all', 'cpc', 'non_cpc'], default: 'all' }) @Rule(RuleType.string().valid('all', 'cpc', 'non_cpc')) orderType: string; @ApiProperty({ enum: ['all', 'zyn', 'yoone', 'zolt'], default: 'all' }) @Rule(RuleType.string().valid('all', 'zyn', 'yoone', 'zolt')) brand: string; @ApiProperty({ enum: ['day', 'week', 'month'], default: 'day' }) @Rule(RuleType.string().valid('day', 'week', 'month')) grouping: string; }