chore: sync broker portfolio contract

This commit is contained in:
Sergey Krylov 2026-06-19 06:00:15 +03:00
parent 8aea56cbbf
commit 5cb51e44f2
2 changed files with 77 additions and 9 deletions

View File

@ -281,6 +281,12 @@ export interface BrokerPosition {
export interface BrokerPortfolio {
account: BrokerAccount;
positionCounts: {
shares: number;
bonds: number;
etf: number;
other: number;
};
totals: {
shares: BrokerMoney | null;
bonds: BrokerMoney | null;

View File

@ -417,6 +417,23 @@ export interface paths {
patch?: never;
trace?: never;
};
'/api/v1/broker/accounts/{accountId}/positions': {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get paginated T-Bank broker account positions */
get: operations['TBankController_getPositions'];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
'/api/v1/broker/accounts/{accountId}/operations': {
parameters: {
query?: never;
@ -774,6 +791,12 @@ export interface components {
data: components['schemas']['BrokerAccountResponseDto'][];
meta: components['schemas']['BrokerResponseMetaDto'];
};
BrokerPortfolioPositionCountsDto: {
shares: number;
bonds: number;
etf: number;
other: number;
};
BrokerMoneyDto: {
currency: string;
units: string;
@ -796,6 +819,19 @@ export interface components {
daily: components['schemas']['BrokerMoneyDto'] | null;
dailyPercent: Record<string, never> | null;
};
BrokerPortfolioResponseDto: {
account: components['schemas']['BrokerAccountResponseDto'];
positionCounts: components['schemas']['BrokerPortfolioPositionCountsDto'];
totals: components['schemas']['BrokerPortfolioTotalsDto'];
yields: components['schemas']['BrokerPortfolioYieldsDto'];
cash: components['schemas']['BrokerMoneyDto'][];
blockedCash: components['schemas']['BrokerMoneyDto'][];
asOf: string;
};
BrokerPortfolioEnvelopeDto: {
data: components['schemas']['BrokerPortfolioResponseDto'];
meta: components['schemas']['BrokerResponseMetaDto'];
};
BrokerPositionResponseDto: {
figi: Record<string, never> | null;
instrumentUid: Record<string, never> | null;
@ -812,17 +848,15 @@ export interface components {
expectedYieldPercent: Record<string, never> | null;
dailyYield: components['schemas']['BrokerMoneyDto'] | null;
};
BrokerPortfolioResponseDto: {
account: components['schemas']['BrokerAccountResponseDto'];
totals: components['schemas']['BrokerPortfolioTotalsDto'];
yields: components['schemas']['BrokerPortfolioYieldsDto'];
cash: components['schemas']['BrokerMoneyDto'][];
blockedCash: components['schemas']['BrokerMoneyDto'][];
positions: components['schemas']['BrokerPositionResponseDto'][];
BrokerPositionsPageResponseDto: {
accountId: string;
items: components['schemas']['BrokerPositionResponseDto'][];
nextCursor: Record<string, never> | null;
hasNext: boolean;
asOf: string;
};
BrokerPortfolioEnvelopeDto: {
data: components['schemas']['BrokerPortfolioResponseDto'];
BrokerPositionsEnvelopeDto: {
data: components['schemas']['BrokerPositionsPageResponseDto'];
meta: components['schemas']['BrokerResponseMetaDto'];
};
BrokerOperationResponseDto: {
@ -835,6 +869,7 @@ export interface components {
/** @enum {string} */
category: 'trade' | 'income' | 'tax' | 'fee' | 'transfer' | 'other';
description: Record<string, never> | null;
name: Record<string, never> | null;
state: Record<string, never> | null;
instrumentUid: Record<string, never> | null;
figi: Record<string, never> | null;
@ -1519,6 +1554,33 @@ export interface operations {
};
};
};
TBankController_getPositions: {
parameters: {
query?: {
/** @description Cursor for pagination (positionUid) */
cursor?: string;
limit?: number;
/** @description Filter by instrument type (share, bond, etf, etc.) */
type?: string;
};
header?: never;
path: {
accountId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
'application/json': components['schemas']['BrokerPositionsEnvelopeDto'];
};
};
};
};
TBankController_getOperations: {
parameters: {
query?: {