import { IsString, IsOptional, IsBoolean, IsIn, IsUUID } from 'class-validator'; import { ApiProperty } from '@nestjs/swagger'; export class CreateAccountDto { @ApiProperty({ example: '6600' }) @IsString() accountNumber: string; @ApiProperty({ example: 'Equipment Repairs' }) @IsString() name: string; @ApiProperty({ required: false }) @IsString() @IsOptional() description?: string; @ApiProperty({ example: 'expense', enum: ['asset', 'liability', 'equity', 'income', 'expense'] }) @IsIn(['asset', 'liability', 'equity', 'income', 'expense']) accountType: string; @ApiProperty({ example: 'operating', enum: ['operating', 'reserve'] }) @IsIn(['operating', 'reserve']) fundType: string; @ApiProperty({ required: false }) @IsUUID() @IsOptional() parentAccountId?: string; @ApiProperty({ required: false, default: false }) @IsBoolean() @IsOptional() is1099Reportable?: boolean; @ApiProperty({ required: false, default: 0 }) @IsOptional() initialBalance?: number; @ApiProperty({ required: false, description: 'ISO date string (YYYY-MM-DD) for when the initial balance was accurate' }) @IsString() @IsOptional() initialBalanceDate?: string; @ApiProperty({ required: false, description: 'Annual interest rate as a percentage' }) @IsOptional() interestRate?: number; }