feat: add operations page

This commit is contained in:
2026-08-14 13:42:31 +03:00
parent 2cca503519
commit 4f3ee7ddb2
16 changed files with 913 additions and 8 deletions
+105
View File
@@ -116,6 +116,22 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/v1/brokerage-accounts/{accountId}/operations": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get: operations["BrokerageOperationsController_get"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/v1/brokerage-accounts/{accountId}/portfolio": {
parameters: {
query?: never;
@@ -185,6 +201,32 @@ export interface components {
currency: string;
value: string;
};
BrokerageOperationDto: {
id: string;
/** Format: date-time */
occurredAt: string;
type: string;
/** @enum {string} */
category: "trade" | "income" | "tax" | "fee" | "transfer" | "other";
description: string;
figi: string | null;
instrumentUid: string | null;
ticker: string | null;
instrumentType: string | null;
payment: components["schemas"]["MoneyDto"] | null;
quantity: string | null;
price: components["schemas"]["MoneyDto"] | null;
accruedInterest: components["schemas"]["MoneyDto"] | null;
commission: components["schemas"]["MoneyDto"] | null;
};
BrokerageOperationsPageDto: {
accountId: string;
items: components["schemas"]["BrokerageOperationDto"][];
nextCursor: string | null;
hasNext: boolean;
/** Format: date-time */
observedAt: string;
};
PortfolioPositionDto: {
figi: string | null;
displayName: string;
@@ -715,6 +757,69 @@ export interface operations {
};
};
};
BrokerageOperationsController_get: {
parameters: {
query?: {
from?: string;
to?: string;
categories?: ("trade" | "income" | "tax" | "fee" | "transfer" | "other")[];
cursor?: string;
limit?: number;
};
header?: never;
path: {
accountId: string;
};
cookie?: never;
};
requestBody?: never;
responses: {
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["BrokerageOperationsPageDto"];
};
};
/** @description Invalid request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["ProblemDetailsDto"];
};
};
/** @description Authentication required */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["ProblemDetailsDto"];
};
};
/** @description Resource not found */
404: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["ProblemDetailsDto"];
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/problem+json": components["schemas"]["ProblemDetailsDto"];
};
};
};
};
PortfolioController_get: {
parameters: {
query?: never;