diff --git a/libs/common/src/lib/dtos/create-asset-profile-with-market-data.dto.ts b/libs/common/src/lib/dtos/create-asset-profile-with-market-data.dto.ts index 60afcb558..434fd374a 100644 --- a/libs/common/src/lib/dtos/create-asset-profile-with-market-data.dto.ts +++ b/libs/common/src/lib/dtos/create-asset-profile-with-market-data.dto.ts @@ -1,9 +1,9 @@ -import { MarketData } from '@ghostfolio/common/interfaces'; - import { DataSource } from '@prisma/client'; -import { IsArray, IsIn, IsOptional } from 'class-validator'; +import { Type } from 'class-transformer'; +import { IsArray, IsIn, IsOptional, ValidateNested } from 'class-validator'; import { CreateAssetProfileDto } from './create-asset-profile.dto'; +import { MarketDataDto } from './market-data.dto'; export class CreateAssetProfileWithMarketDataDto extends CreateAssetProfileDto { @IsIn([DataSource.MANUAL], { @@ -13,5 +13,7 @@ export class CreateAssetProfileWithMarketDataDto extends CreateAssetProfileDto { @IsArray() @IsOptional() - marketData?: MarketData[]; + @Type(() => MarketDataDto) + @ValidateNested({ each: true }) + marketData?: MarketDataDto[]; } diff --git a/libs/common/src/lib/dtos/index.ts b/libs/common/src/lib/dtos/index.ts index a679af249..2f8f1f242 100644 --- a/libs/common/src/lib/dtos/index.ts +++ b/libs/common/src/lib/dtos/index.ts @@ -13,6 +13,7 @@ import { CreateTagDto } from './create-tag.dto'; import { CreateWatchlistItemDto } from './create-watchlist-item.dto'; import { DeleteOwnUserDto } from './delete-own-user.dto'; import { HoldingDto } from './holding.dto'; +import { MarketDataDto } from './market-data.dto'; import { MergeAssetProfileDto } from './merge-asset-profile.dto'; import { ScraperConfigurationDto } from './scraper-configuration.dto'; import { SectorDto } from './sector.dto'; @@ -46,6 +47,7 @@ export { CreateWatchlistItemDto, DeleteOwnUserDto, HoldingDto, + MarketDataDto, MergeAssetProfileDto, ScraperConfigurationDto, SectorDto, diff --git a/libs/common/src/lib/dtos/market-data.dto.ts b/libs/common/src/lib/dtos/market-data.dto.ts new file mode 100644 index 000000000..a86709f36 --- /dev/null +++ b/libs/common/src/lib/dtos/market-data.dto.ts @@ -0,0 +1,9 @@ +import { IsISO8601, IsNumber } from 'class-validator'; + +export class MarketDataDto { + @IsISO8601() + date: string; + + @IsNumber() + marketPrice: number; +}