import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; export class PositionWithPriceDto { @ApiProperty() id!: number; @ApiProperty({ example: 'SBER' }) secid!: string; @ApiPropertyOptional({ type: String, nullable: true }) shortName!: string | null; @ApiProperty({ example: 'share', enum: ['share', 'bond'] }) type!: string; @ApiProperty({ example: 10 }) quantity!: number; @ApiPropertyOptional({ type: Number, nullable: true }) buyPrice!: number | null; @ApiPropertyOptional({ type: String, nullable: true }) buyDate!: string | null; @ApiPropertyOptional({ type: String, nullable: true }) notes!: string | null; @ApiPropertyOptional({ type: String, isArray: true, nullable: true }) tags!: string[] | null; @ApiPropertyOptional({ type: Number, nullable: true }) currentPrice!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) totalCost!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) currentValue!: number | null; @ApiProperty() weightPercent!: number; @ApiPropertyOptional({ type: Number, nullable: true }) pnl!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) pnlPercent!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) dividendIncome!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) totalReturn!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) totalReturnPercent!: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) change?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) changePercent?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) yieldToMaturity?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) duration?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) couponValue?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) couponPercent?: number | null; @ApiPropertyOptional({ type: String, nullable: true }) nextCouponDate?: string | null; @ApiPropertyOptional({ type: String, nullable: true }) matDate?: string | null; @ApiPropertyOptional({ type: Number, nullable: true }) accruedInt?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) bid?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) offer?: number | null; @ApiPropertyOptional({ type: Number, nullable: true }) couponPeriod?: number | null; @ApiPropertyOptional({ type: String, nullable: true }) bondType?: string | null; @ApiPropertyOptional({ type: String, nullable: true }) offerDate?: string | null; }