import { IsString, IsNumber, IsDate, IsOptional, IsNotEmpty } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; import { Transform } from 'class-transformer'; export class CastDTO { @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() eventId: number; @ApiProperty({ type: String }) @IsString() @IsOptional() castName: string; @ApiProperty({ type: String }) @IsString() @IsOptional() role: string; @ApiProperty({ type: Object }) @IsOptional() images: object; @ApiProperty({ type: String }) @IsString() @IsOptional() status: string; @ApiProperty({ type: Date }) @IsDate() @IsOptional() @Transform(({ value }) => new Date(value)) validFrom: Date; @ApiProperty({ type: Date }) @IsDate() @IsOptional() @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 CastUpdateDTO extends CastDTO { @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() id: number; }