feat(income): add account income analytics
This commit is contained in:
Vendored
+227
@@ -164,6 +164,38 @@ export interface paths {
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/v1/brokerage-accounts/{accountId}/income-summary": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get: operations["IncomeAnalyticsController_summary"];
|
||||
put?: never;
|
||||
post?: never;
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/v1/brokerage-accounts/{accountId}/income-analytics": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get: operations["IncomeAnalyticsController_analytics"];
|
||||
put?: never;
|
||||
post?: never;
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
}
|
||||
export type webhooks = Record<string, never>;
|
||||
export interface components {
|
||||
@@ -287,6 +319,66 @@ export interface components {
|
||||
/** Format: date-time */
|
||||
calculatedAt: string;
|
||||
events: components["schemas"]["UpcomingEventDto"][];
|
||||
incomeTotalsByCurrency: components["schemas"]["MoneyDto"][];
|
||||
};
|
||||
IncomePeriodDto: {
|
||||
/** Format: date */
|
||||
from: string;
|
||||
/** Format: date */
|
||||
to: string;
|
||||
};
|
||||
IncomeCurrencySummaryDto: {
|
||||
currency: string;
|
||||
coupon: components["schemas"]["MoneyDto"];
|
||||
dividend: components["schemas"]["MoneyDto"];
|
||||
total: components["schemas"]["MoneyDto"];
|
||||
};
|
||||
IncomeSummaryDto: {
|
||||
accountId: string;
|
||||
period: components["schemas"]["IncomePeriodDto"];
|
||||
totalsByCurrency: components["schemas"]["IncomeCurrencySummaryDto"][];
|
||||
/** Format: date-time */
|
||||
calculatedAt: string;
|
||||
};
|
||||
IncomeComparisonCurrencyDto: {
|
||||
currency: string;
|
||||
selected: components["schemas"]["IncomeCurrencySummaryDto"];
|
||||
compared: components["schemas"]["IncomeCurrencySummaryDto"];
|
||||
difference: components["schemas"]["IncomeCurrencySummaryDto"];
|
||||
};
|
||||
IncomeComparisonDto: {
|
||||
period: components["schemas"]["IncomePeriodDto"];
|
||||
totalsByCurrency: components["schemas"]["IncomeComparisonCurrencyDto"][];
|
||||
};
|
||||
IncomeBucketDto: {
|
||||
period: components["schemas"]["IncomePeriodDto"];
|
||||
totalsByCurrency: components["schemas"]["IncomeCurrencySummaryDto"][];
|
||||
};
|
||||
IncomeInstrumentDto: {
|
||||
key: string;
|
||||
figi: string | null;
|
||||
instrumentUid: string | null;
|
||||
ticker: string | null;
|
||||
instrumentType: string | null;
|
||||
displayName: string;
|
||||
coupon: components["schemas"]["MoneyDto"];
|
||||
dividend: components["schemas"]["MoneyDto"];
|
||||
total: components["schemas"]["MoneyDto"];
|
||||
receiptCount: number;
|
||||
};
|
||||
IncomeAnalyticsDto: {
|
||||
accountId: string;
|
||||
period: components["schemas"]["IncomePeriodDto"];
|
||||
totalsByCurrency: components["schemas"]["IncomeCurrencySummaryDto"][];
|
||||
/** Format: date-time */
|
||||
calculatedAt: string;
|
||||
previous: components["schemas"]["IncomeComparisonDto"];
|
||||
yearComparison: components["schemas"]["IncomeComparisonDto"] | null;
|
||||
/** @enum {string} */
|
||||
bucketGranularity: "day" | "week" | "month";
|
||||
buckets: components["schemas"]["IncomeBucketDto"][];
|
||||
instruments: components["schemas"]["IncomeInstrumentDto"][];
|
||||
entries: components["schemas"]["BrokerageOperationDto"][];
|
||||
};
|
||||
};
|
||||
responses: never;
|
||||
@@ -1085,4 +1177,139 @@ export interface operations {
|
||||
};
|
||||
};
|
||||
};
|
||||
IncomeAnalyticsController_summary: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path: {
|
||||
accountId: string;
|
||||
};
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["IncomeSummaryDto"];
|
||||
};
|
||||
};
|
||||
/** @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"];
|
||||
};
|
||||
};
|
||||
/** @description Upstream service unavailable */
|
||||
503: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/problem+json": components["schemas"]["ProblemDetailsDto"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
IncomeAnalyticsController_analytics: {
|
||||
parameters: {
|
||||
query?: {
|
||||
from?: string;
|
||||
to?: string;
|
||||
};
|
||||
header?: never;
|
||||
path: {
|
||||
accountId: string;
|
||||
};
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["IncomeAnalyticsDto"];
|
||||
};
|
||||
};
|
||||
/** @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"];
|
||||
};
|
||||
};
|
||||
/** @description Upstream service unavailable */
|
||||
503: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/problem+json": components["schemas"]["ProblemDetailsDto"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user