forked from yoone/API
1
0
Fork 0
API/src/dto/statistics.dto.ts

42 lines
1.1 KiB
TypeScript

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;
}