import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsArray, IsBoolean, IsEnum, IsInt, IsOptional, IsString, IsUrl, Max, Min, } from 'class-validator'; import { PublishStatus } from '../drama-status.enum'; export class CreateDramaDto { @ApiPropertyOptional() @IsOptional() @IsString() tiktokAlbumId?: string; @ApiProperty() @IsString() title: string; @ApiPropertyOptional() @IsOptional() @IsString() description?: string; @ApiProperty() @IsOptional() @IsUrl({ require_tld: false }) coverUrl: string; @ApiPropertyOptional() @IsOptional() @IsInt() @Min(1) coverId?: number; @ApiPropertyOptional() @IsOptional() @IsUrl({ require_tld: false }) portraitCoverUrl?: string; @ApiPropertyOptional() @IsOptional() @IsUrl({ require_tld: false }) landscapeCoverUrl?: string; @ApiProperty() @IsString() type: string; @ApiPropertyOptional({ type: [String] }) @IsOptional() @IsArray() @IsString({ each: true }) tags?: string[]; @ApiPropertyOptional() @IsOptional() @IsString() region?: string; @ApiPropertyOptional() @IsOptional() @IsString() language?: string; @ApiPropertyOptional() @IsOptional() @IsInt() @Min(1900) year?: number; @ApiPropertyOptional({ enum: PublishStatus }) @IsOptional() @IsEnum(PublishStatus) status?: PublishStatus; @ApiPropertyOptional() @IsOptional() @IsInt() sortOrder?: number; @ApiPropertyOptional() @IsOptional() @IsBoolean() isRecommended?: boolean; @ApiPropertyOptional() @IsOptional() @IsInt() @Min(1) @Max(500) totalEpisodes?: number; @ApiPropertyOptional() @IsOptional() @IsInt() @Min(1) onlineVersion?: number; }