pos-be/src/modules/transaction/vip-code/infrastructure/dto/vip-code.dto.ts

46 lines
964 B
TypeScript

import { BaseDto } from 'src/core/modules/infrastructure/dto/base.dto';
import { VipCodeEntity } from '../../domain/entities/vip-code.entity';
import { IsNumber, IsObject, IsString, ValidateIf } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger';
export class VipCodeDto extends BaseDto implements VipCodeEntity {
@ApiProperty({
name: 'code',
type: String,
required: true,
example: '0824A12',
})
@IsString()
code: string;
@ApiProperty({
name: 'discount',
type: Number,
required: false,
example: 85,
})
@IsNumber()
discount: number;
@ApiProperty({
name: 'discount_value',
type: Number,
required: false,
example: 25000,
})
@IsNumber()
@ValidateIf((v) => v.discount_value)
discount_value: number;
@ApiProperty({
name: 'vip_category',
type: Object,
required: true,
example: {
id: 'uuid',
},
})
@IsObject()
vip_category: VipCodeEntity;
}