45 lines
866 B
TypeScript
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>;
|
|
}
|