You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

90 lines
1.5 KiB

import { IsCurrencyCode } from '@ghostfolio/common/validators/is-currency-code';
import { AssetClass, AssetSubClass, DataSource, Prisma } from '@prisma/client';
import { Type } from 'class-transformer';
import {
IsArray,
IsBoolean,
IsEnum,
IsOptional,
IsString,
IsUrl,
ValidateNested
} from 'class-validator';
import { CountryDto } from './country.dto';
import { SectorDto } from './sector.dto';
export class CreateAssetProfileDto {
@IsEnum(AssetClass)
@IsOptional()
assetClass?: AssetClass;
@IsEnum(AssetSubClass)
@IsOptional()
assetSubClass?: AssetSubClass;
@IsOptional()
@IsString()
comment?: string;
@IsArray()
@IsOptional()
@Type(() => CountryDto)
@ValidateNested({ each: true })
countries?: Prisma.InputJsonArray;
@IsCurrencyCode()
currency: string;
@IsOptional()
@IsString()
cusip?: string;
@IsEnum(DataSource)
dataSource: DataSource;
@IsOptional()
@IsString()
figi?: string;
@IsOptional()
@IsString()
figiComposite?: string;
@IsOptional()
@IsString()
figiShareClass?: string;
@IsArray()
@IsOptional()
holdings?: Prisma.InputJsonArray;
@IsBoolean()
@IsOptional()
isActive?: boolean;
@IsOptional()
@IsString()
isin?: string;
@IsOptional()
@IsString()
name?: string;
@IsArray()
@IsOptional()
@Type(() => SectorDto)
@ValidateNested({ each: true })
sectors?: Prisma.InputJsonArray;
@IsString()
symbol: string;
@IsOptional()
@IsUrl({
protocols: ['http', 'https'],
require_protocol: true
})
url?: string;
}