import { IsString, IsNumber, IsDate, IsOptional, IsNotEmpty, IsEmail } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; import { Transform } from 'class-transformer'; export class RefundDTO { @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() ticketId: number; @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() refundAmount: number; @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() refundPercentage: number; @ApiProperty({ type: String }) @IsString() @IsNotEmpty() refundReason: string; @ApiProperty({ type: Date }) @IsDate() @IsNotEmpty() @Transform(({ value }) => new Date(value)) refundDate: Date; @ApiProperty({ type: String }) @IsString() @IsNotEmpty() status: string; @ApiProperty({ type: Date }) @IsDate() @Transform(({ value }) => new Date(value)) validFrom: Date; @ApiProperty({ type: Date }) @IsDate() @Transform(({ value }) => new Date(value)) validTill: Date; @ApiProperty({ type: Date }) @IsDate() @Transform(({ value }) => new Date(value)) createdAt: Date; @ApiProperty({ type: Date }) @IsDate() @Transform(({ value }) => new Date(value)) updatedAt: Date; @ApiProperty({ type: String }) @IsString() createdBy: string; @ApiProperty({ type: String }) @IsString() modifiedBy: string; @ApiProperty({ type: Date }) @IsOptional() @IsDate() @Transform(({ value }) => value ? new Date(value) : null) deletedAt: Date; @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() version: number; } export class RefundUpdateDTO extends RefundDTO { @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() id: number }