100 lines
2.7 KiB
TypeScript
100 lines
2.7 KiB
TypeScript
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;
|
|
}
|