import { IsString, IsNumber, IsDate, IsNotEmpty, IsOptional, IsObject } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; import { Transform } from 'class-transformer'; export class TheatreDTO { @ApiProperty({ type: String }) @IsString() @IsNotEmpty() theatreName: string; @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() rows: number; @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() columns: number; @ApiProperty({ type: String }) @IsString() @IsNotEmpty() address: string; @ApiProperty({ type: String }) @IsString() @IsNotEmpty() city: string; @ApiProperty({ type: Object }) @IsObject() @IsNotEmpty() images: object; @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() totalSeats: number; @ApiProperty({ type: String }) @IsString() @IsNotEmpty() status: string; @ApiProperty({ type: Date }) @IsDate() @IsNotEmpty() @Transform(({ value }) => new Date(value)) validFrom: Date; @ApiProperty({ type: Date }) @IsDate() @IsNotEmpty() @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 TheatreUpdateDTO extends TheatreDTO { @ApiProperty({ type: Number }) @IsNumber() @IsNotEmpty() id: number }