import { ApiProperty } from '@nestjs/swagger'; import { BrokerAccountResponseDto } from './broker-account-response.dto'; import { BrokerMoneyDto } from './broker-money.dto'; export class BrokerPortfolioTotalsDto { @ApiProperty({ type: BrokerMoneyDto, nullable: true }) shares!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) bonds!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) etf!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) currencies!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) futures!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) options!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) structuredProducts!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) dfa!: BrokerMoneyDto | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) portfolio!: BrokerMoneyDto | null; } export class BrokerPortfolioYieldsDto { @ApiProperty({ nullable: true }) expectedPercent!: number | null; @ApiProperty({ type: BrokerMoneyDto, nullable: true }) daily!: BrokerMoneyDto | null; @ApiProperty({ nullable: true }) dailyPercent!: number | null; } export class BrokerPortfolioPositionCountsDto { @ApiProperty({ minimum: 0 }) shares!: number; @ApiProperty({ minimum: 0 }) bonds!: number; @ApiProperty({ minimum: 0 }) etf!: number; @ApiProperty({ minimum: 0 }) other!: number; } export class BrokerPortfolioResponseDto { @ApiProperty({ type: BrokerAccountResponseDto }) account!: BrokerAccountResponseDto; @ApiProperty({ type: BrokerPortfolioPositionCountsDto }) positionCounts!: BrokerPortfolioPositionCountsDto; @ApiProperty({ type: BrokerPortfolioTotalsDto }) totals!: BrokerPortfolioTotalsDto; @ApiProperty({ type: BrokerPortfolioYieldsDto }) yields!: BrokerPortfolioYieldsDto; @ApiProperty({ type: [BrokerMoneyDto] }) cash!: BrokerMoneyDto[]; @ApiProperty({ type: [BrokerMoneyDto] }) blockedCash!: BrokerMoneyDto[]; @ApiProperty() asOf!: string; }