pos-be/src/modules/reports/shared/dto/report-data.get.dto.ts

43 lines
960 B
TypeScript

import { ApiProperty } from '@nestjs/swagger';
import { IsObject, IsString, ValidateIf } from 'class-validator';
import { QueryModelEntity } from '../entities/query-model.entity';
import { REPORT_GROUP } from '../constant';
export class GetReportDataDto {
@ApiProperty({
name: 'group_name',
required: true,
default: REPORT_GROUP.transaction_report,
})
@IsString()
group_name: string;
@ApiProperty({
name: 'unique_name',
required: true,
default: `${REPORT_GROUP.transaction_report}__sample`,
})
@IsString()
unique_name: string;
@ApiProperty({
name: 'query_model',
type: Object,
required: true,
default: {
startRow: 0,
endRow: 100,
rowGroupCols: [],
valueCols: [],
pivotCols: [],
pivotMode: true,
groupKeys: [],
filterModel: {},
sortModel: [],
},
})
@IsObject()
@ValidateIf((body) => body.query_model)
query_model: QueryModelEntity;
}