ghostfolio/apps/api/src/app/order/update-order.dto.ts

71 lines
1.0 KiB
TypeScript
Raw Normal View History

import {
AssetClass,
AssetSubClass,
DataSource,
Tag,
Type
} from '@prisma/client';
import { Transform, TransformFnParams } from 'class-transformer';
import {
IsArray,
IsBoolean,
IsEnum,
IsISO8601,
IsNumber,
IsOptional,
IsString
} from 'class-validator';
import { isString } from 'lodash';
2021-04-13 21:53:58 +02:00
export class UpdateOrderDto {
@IsOptional()
@IsString()
accountId?: string;
@IsEnum(AssetClass, { each: true })
@IsOptional()
assetClass?: AssetClass;
@IsEnum(AssetSubClass, { each: true })
@IsOptional()
assetSubClass?: AssetSubClass;
@IsOptional()
@IsString()
@Transform(({ value }: TransformFnParams) =>
isString(value) ? value.trim() : value
)
comment?: string;
2021-04-13 21:53:58 +02:00
@IsString()
currency: string;
2021-04-13 21:53:58 +02:00
@IsString()
dataSource: DataSource;
2021-04-13 21:53:58 +02:00
@IsISO8601()
date: string;
@IsNumber()
fee: number;
@IsString()
id: string;
@IsNumber()
quantity: number;
@IsString()
symbol: string;
@IsArray()
@IsOptional()
tags?: Tag[];
2021-04-13 21:53:58 +02:00
@IsString()
type: Type;
@IsNumber()
unitPrice: number;
}