import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { IsEnum, IsInt, IsOptional, IsString, Max, Min } from 'class-validator'; import { TaskPriority, TaskTemplateRecurrenceType, } from '../../../generated/prisma'; import { IsOptionalNotNull } from '../../common/validation/is-optional-not-null'; export class CreateTaskTemplateDto { @ApiProperty() @IsString() title!: string; @ApiPropertyOptional() @IsOptional() @IsString() description?: string; @ApiPropertyOptional({ enum: TaskPriority }) @IsOptionalNotNull() @IsEnum(TaskPriority) priority?: TaskPriority; @ApiPropertyOptional() @IsOptional() @IsString() assignedUserId?: string; @ApiProperty({ enum: TaskTemplateRecurrenceType }) @IsEnum(TaskTemplateRecurrenceType) recurrenceType!: TaskTemplateRecurrenceType; @ApiPropertyOptional({ description: '1-12, erforderlich bei YEARLY' }) @IsOptional() @IsInt() @Min(1) @Max(12) recurrenceMonth?: number; @ApiPropertyOptional({ description: '1-31, erforderlich bei YEARLY und MONTHLY', }) @IsOptional() @IsInt() @Min(1) @Max(31) recurrenceDayOfMonth?: number; @ApiPropertyOptional({ description: 'erforderlich bei INTERVAL_DAYS' }) @IsOptional() @IsInt() @Min(1) intervalDays?: number; }