ledgerone_backend/src/households/dto/update-household-goal.dto.ts

45 lines
866 B
TypeScript

import { IsDateString, IsIn, IsNumber, IsObject, IsOptional, IsString, MaxLength, Min } from "class-validator";
export class UpdateHouseholdGoalDto {
@IsOptional()
@IsString()
@MaxLength(120)
name?: string;
@IsOptional()
@IsString()
@MaxLength(500)
description?: string | null;
@IsOptional()
@IsNumber()
@Min(0.01)
targetAmount?: number;
@IsOptional()
@IsNumber()
@Min(0)
currentAmount?: number;
@IsOptional()
@IsString()
@MaxLength(3)
isoCurrencyCode?: string;
@IsOptional()
@IsDateString()
targetDate?: string | null;
@IsOptional()
@IsIn(["low", "medium", "high"])
priority?: "low" | "medium" | "high";
@IsOptional()
@IsIn(["active", "paused", "completed", "archived"])
status?: "active" | "paused" | "completed" | "archived";
@IsOptional()
@IsObject()
metadata?: Record<string, unknown>;
}