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 { export interface BrokerPortfolio {
account: BrokerAccount; account: BrokerAccount;
positionCounts: {
shares: number;
bonds: number;
etf: number;
other: number;
};
totals: { totals: {
shares: BrokerMoney | null; shares: BrokerMoney | null;
bonds: BrokerMoney | null; bonds: BrokerMoney | null;

View File

@ -417,6 +417,23 @@ export interface paths {
patch?: never; patch?: never;
trace?: 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': { '/api/v1/broker/accounts/{accountId}/operations': {
parameters: { parameters: {
query?: never; query?: never;
@ -774,6 +791,12 @@ export interface components {
data: components['schemas']['BrokerAccountResponseDto'][]; data: components['schemas']['BrokerAccountResponseDto'][];
meta: components['schemas']['BrokerResponseMetaDto']; meta: components['schemas']['BrokerResponseMetaDto'];
}; };
BrokerPortfolioPositionCountsDto: {
shares: number;
bonds: number;
etf: number;
other: number;
};
BrokerMoneyDto: { BrokerMoneyDto: {
currency: string; currency: string;
units: string; units: string;
@ -796,6 +819,19 @@ export interface components {
daily: components['schemas']['BrokerMoneyDto'] | null; daily: components['schemas']['BrokerMoneyDto'] | null;
dailyPercent: Record<string, never> | 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: { BrokerPositionResponseDto: {
figi: Record<string, never> | null; figi: Record<string, never> | null;
instrumentUid: Record<string, never> | null; instrumentUid: Record<string, never> | null;
@ -812,17 +848,15 @@ export interface components {
expectedYieldPercent: Record<string, never> | null; expectedYieldPercent: Record<string, never> | null;
dailyYield: components['schemas']['BrokerMoneyDto'] | null; dailyYield: components['schemas']['BrokerMoneyDto'] | null;
}; };
BrokerPortfolioResponseDto: { BrokerPositionsPageResponseDto: {
account: components['schemas']['BrokerAccountResponseDto']; accountId: string;
totals: components['schemas']['BrokerPortfolioTotalsDto']; items: components['schemas']['BrokerPositionResponseDto'][];
yields: components['schemas']['BrokerPortfolioYieldsDto']; nextCursor: Record<string, never> | null;
cash: components['schemas']['BrokerMoneyDto'][]; hasNext: boolean;
blockedCash: components['schemas']['BrokerMoneyDto'][];
positions: components['schemas']['BrokerPositionResponseDto'][];
asOf: string; asOf: string;
}; };
BrokerPortfolioEnvelopeDto: { BrokerPositionsEnvelopeDto: {
data: components['schemas']['BrokerPortfolioResponseDto']; data: components['schemas']['BrokerPositionsPageResponseDto'];
meta: components['schemas']['BrokerResponseMetaDto']; meta: components['schemas']['BrokerResponseMetaDto'];
}; };
BrokerOperationResponseDto: { BrokerOperationResponseDto: {
@ -835,6 +869,7 @@ export interface components {
/** @enum {string} */ /** @enum {string} */
category: 'trade' | 'income' | 'tax' | 'fee' | 'transfer' | 'other'; category: 'trade' | 'income' | 'tax' | 'fee' | 'transfer' | 'other';
description: Record<string, never> | null; description: Record<string, never> | null;
name: Record<string, never> | null;
state: Record<string, never> | null; state: Record<string, never> | null;
instrumentUid: Record<string, never> | null; instrumentUid: Record<string, never> | null;
figi: 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: { TBankController_getOperations: {
parameters: { parameters: {
query?: { query?: {