@firela/api-types 0.0.0-canary.c5520a90 → 0.0.0-canary.c7e4ab1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +5231 -3742
- package/dist/index.d.ts +5231 -3742
- package/dist/index.js +60 -7
- package/dist/index.mjs +60 -7
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +4431 -2459
- package/src/generated/services.gen.ts +1882 -1335
- package/src/generated/types.gen.ts +25450 -2641
|
@@ -17,6 +17,8 @@ import type {
|
|
|
17
17
|
AccountControllerCloseResponse,
|
|
18
18
|
AccountControllerReopenData,
|
|
19
19
|
AccountControllerReopenResponse,
|
|
20
|
+
AccountControllerAddOpeningBalanceData,
|
|
21
|
+
AccountControllerAddOpeningBalanceResponse,
|
|
20
22
|
AccountStandardsControllerGetTemplatesData,
|
|
21
23
|
AccountStandardsControllerGetTemplatesResponse,
|
|
22
24
|
AccountStandardsControllerGetTemplateMetadataData,
|
|
@@ -29,6 +31,8 @@ import type {
|
|
|
29
31
|
TransactionControllerListResponse,
|
|
30
32
|
TransactionControllerCreateBatchData,
|
|
31
33
|
TransactionControllerCreateBatchResponse,
|
|
34
|
+
TransactionControllerBatchVoidData,
|
|
35
|
+
TransactionControllerBatchVoidResponse,
|
|
32
36
|
TransactionControllerCorrectData,
|
|
33
37
|
TransactionControllerCorrectResponse,
|
|
34
38
|
TransactionControllerSuggestTagsData,
|
|
@@ -55,6 +59,48 @@ import type {
|
|
|
55
59
|
ReviewControllerUndoResponse,
|
|
56
60
|
ReviewControllerBatchResolveData,
|
|
57
61
|
ReviewControllerBatchResolveResponse,
|
|
62
|
+
TransactionRuleControllerCreateData,
|
|
63
|
+
TransactionRuleControllerCreateResponse,
|
|
64
|
+
TransactionRuleControllerListData,
|
|
65
|
+
TransactionRuleControllerListResponse,
|
|
66
|
+
TransactionRuleControllerValidateData,
|
|
67
|
+
TransactionRuleControllerValidateResponse,
|
|
68
|
+
TransactionRuleControllerBulkCreateData,
|
|
69
|
+
TransactionRuleControllerBulkCreateResponse,
|
|
70
|
+
TransactionRuleControllerExportData,
|
|
71
|
+
TransactionRuleControllerExportResponse,
|
|
72
|
+
TransactionRuleControllerGetStatisticsData,
|
|
73
|
+
TransactionRuleControllerGetStatisticsResponse,
|
|
74
|
+
TransactionRuleControllerGetDetailData,
|
|
75
|
+
TransactionRuleControllerGetDetailResponse,
|
|
76
|
+
TransactionRuleControllerUpdateData,
|
|
77
|
+
TransactionRuleControllerUpdateResponse,
|
|
78
|
+
TransactionRuleControllerDeleteData,
|
|
79
|
+
TransactionRuleControllerDeleteResponse,
|
|
80
|
+
TransactionRuleControllerTestData,
|
|
81
|
+
TransactionRuleControllerTestResponse,
|
|
82
|
+
UserControllerDeleteOwnUserData,
|
|
83
|
+
UserControllerDeleteOwnUserResponse,
|
|
84
|
+
UserControllerGetUserData,
|
|
85
|
+
UserControllerGetUserResponse,
|
|
86
|
+
UserControllerSignupUserData,
|
|
87
|
+
UserControllerSignupUserResponse,
|
|
88
|
+
UserControllerDeleteUserData,
|
|
89
|
+
UserControllerDeleteUserResponse,
|
|
90
|
+
UserControllerGetUserInfoData,
|
|
91
|
+
UserControllerGetUserInfoResponse,
|
|
92
|
+
UserControllerUpdateUserSettingData,
|
|
93
|
+
UserControllerUpdateUserSettingResponse,
|
|
94
|
+
UserControllerGetAllUserSettingsByPageData,
|
|
95
|
+
UserControllerGetAllUserSettingsByPageResponse,
|
|
96
|
+
UserControllerGetAssetLiabilitySummaryResponse,
|
|
97
|
+
PropertyControllerGetAllResponse,
|
|
98
|
+
PropertyControllerGetByKeyData,
|
|
99
|
+
PropertyControllerGetByKeyResponse,
|
|
100
|
+
PropertyControllerUpdateData,
|
|
101
|
+
PropertyControllerUpdateResponse,
|
|
102
|
+
PropertyControllerDeleteData,
|
|
103
|
+
PropertyControllerDeleteResponse,
|
|
58
104
|
PayeeControllerCreateData,
|
|
59
105
|
PayeeControllerCreateResponse,
|
|
60
106
|
PayeeControllerFindAllData,
|
|
@@ -83,6 +129,7 @@ import type {
|
|
|
83
129
|
PayeeProfileAdminControllerVerifyResponse,
|
|
84
130
|
PayeeProfileAdminControllerUnverifyData,
|
|
85
131
|
PayeeProfileAdminControllerUnverifyResponse,
|
|
132
|
+
PayeeProfileControllerListActiveResponse,
|
|
86
133
|
CommodityControllerCreateData,
|
|
87
134
|
CommodityControllerCreateResponse,
|
|
88
135
|
CommodityControllerFindAllData,
|
|
@@ -97,6 +144,26 @@ import type {
|
|
|
97
144
|
CommodityControllerGetOrCreateResponse,
|
|
98
145
|
CommodityControllerBulkCreateData,
|
|
99
146
|
CommodityControllerBulkCreateResponse,
|
|
147
|
+
ReportingControllerGetPortfolioTrendsData,
|
|
148
|
+
ReportingControllerGetPortfolioTrendsResponse,
|
|
149
|
+
ReportingControllerGetCashFlowTrendsData,
|
|
150
|
+
ReportingControllerGetCashFlowTrendsResponse,
|
|
151
|
+
ReportingControllerGenerateSnapshotData,
|
|
152
|
+
ReportingControllerGenerateSnapshotResponse,
|
|
153
|
+
ReportingControllerBackfillSnapshotsData,
|
|
154
|
+
ReportingControllerBackfillSnapshotsResponse,
|
|
155
|
+
PriceControllerCreateData,
|
|
156
|
+
PriceControllerCreateResponse,
|
|
157
|
+
PriceControllerFindAllData,
|
|
158
|
+
PriceControllerFindAllResponse,
|
|
159
|
+
PriceControllerFindOneData,
|
|
160
|
+
PriceControllerFindOneResponse,
|
|
161
|
+
PriceControllerUpdateData,
|
|
162
|
+
PriceControllerUpdateResponse,
|
|
163
|
+
PriceControllerDeleteData,
|
|
164
|
+
PriceControllerDeleteResponse,
|
|
165
|
+
PriceControllerBulkCreateData,
|
|
166
|
+
PriceControllerBulkCreateResponse,
|
|
100
167
|
RecurringRuleControllerCreateData,
|
|
101
168
|
RecurringRuleControllerCreateResponse,
|
|
102
169
|
RecurringRuleControllerFindAllData,
|
|
@@ -129,48 +196,8 @@ import type {
|
|
|
129
196
|
ExpectedTransactionControllerEnterNowResponse,
|
|
130
197
|
ForecastControllerGetForecastData,
|
|
131
198
|
ForecastControllerGetForecastResponse,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
TransactionRuleControllerListData,
|
|
135
|
-
TransactionRuleControllerListResponse,
|
|
136
|
-
TransactionRuleControllerValidateData,
|
|
137
|
-
TransactionRuleControllerValidateResponse,
|
|
138
|
-
TransactionRuleControllerBulkCreateData,
|
|
139
|
-
TransactionRuleControllerBulkCreateResponse,
|
|
140
|
-
TransactionRuleControllerExportData,
|
|
141
|
-
TransactionRuleControllerExportResponse,
|
|
142
|
-
TransactionRuleControllerGetStatisticsData,
|
|
143
|
-
TransactionRuleControllerGetStatisticsResponse,
|
|
144
|
-
TransactionRuleControllerGetDetailData,
|
|
145
|
-
TransactionRuleControllerGetDetailResponse,
|
|
146
|
-
TransactionRuleControllerUpdateData,
|
|
147
|
-
TransactionRuleControllerUpdateResponse,
|
|
148
|
-
TransactionRuleControllerDeleteData,
|
|
149
|
-
TransactionRuleControllerDeleteResponse,
|
|
150
|
-
TransactionRuleControllerTestData,
|
|
151
|
-
TransactionRuleControllerTestResponse,
|
|
152
|
-
UserControllerDeleteOwnUserData,
|
|
153
|
-
UserControllerDeleteOwnUserResponse,
|
|
154
|
-
UserControllerGetUserData,
|
|
155
|
-
UserControllerGetUserResponse,
|
|
156
|
-
UserControllerSignupUserData,
|
|
157
|
-
UserControllerSignupUserResponse,
|
|
158
|
-
UserControllerDeleteUserData,
|
|
159
|
-
UserControllerDeleteUserResponse,
|
|
160
|
-
UserControllerGetUserInfoData,
|
|
161
|
-
UserControllerGetUserInfoResponse,
|
|
162
|
-
UserControllerUpdateUserSettingData,
|
|
163
|
-
UserControllerUpdateUserSettingResponse,
|
|
164
|
-
UserControllerGetAllUserSettingsByPageData,
|
|
165
|
-
UserControllerGetAllUserSettingsByPageResponse,
|
|
166
|
-
UserControllerGetAssetLiabilitySummaryResponse,
|
|
167
|
-
PropertyControllerGetAllResponse,
|
|
168
|
-
PropertyControllerGetByKeyData,
|
|
169
|
-
PropertyControllerGetByKeyResponse,
|
|
170
|
-
PropertyControllerUpdateData,
|
|
171
|
-
PropertyControllerUpdateResponse,
|
|
172
|
-
PropertyControllerDeleteData,
|
|
173
|
-
PropertyControllerDeleteResponse,
|
|
199
|
+
CategoryCatalogControllerListData,
|
|
200
|
+
CategoryCatalogControllerListResponse,
|
|
174
201
|
EventControllerCreateData,
|
|
175
202
|
EventControllerCreateResponse,
|
|
176
203
|
EventControllerFindAllData,
|
|
@@ -183,6 +210,17 @@ import type {
|
|
|
183
210
|
EventControllerDeleteResponse,
|
|
184
211
|
EventControllerGetSliceData,
|
|
185
212
|
EventControllerGetSliceResponse,
|
|
213
|
+
OnboardingControllerBootstrapData,
|
|
214
|
+
OnboardingControllerBootstrapResponse,
|
|
215
|
+
ReconciliationControllerComputeData,
|
|
216
|
+
ReconciliationControllerComputeResponse,
|
|
217
|
+
ReconciliationControllerAssertData,
|
|
218
|
+
ReconciliationControllerAssertResponse,
|
|
219
|
+
ReconciliationControllerPadData,
|
|
220
|
+
ReconciliationControllerPadResponse,
|
|
221
|
+
ReconciliationControllerHistoryData,
|
|
222
|
+
ReconciliationControllerHistoryResponse,
|
|
223
|
+
ExportControllerExportBeancountData,
|
|
186
224
|
ExportControllerExportBeancountResponse,
|
|
187
225
|
FileImportControllerImportFileData,
|
|
188
226
|
FileImportControllerImportFileResponse,
|
|
@@ -196,22 +234,20 @@ import type {
|
|
|
196
234
|
ImporterConfigControllerUpdateConfigResponse,
|
|
197
235
|
ImporterConfigControllerResetConfigData,
|
|
198
236
|
ImporterConfigControllerResetConfigResponse,
|
|
199
|
-
PlatformControllerFindAllResponse,
|
|
200
|
-
PlatformControllerCreateData,
|
|
201
|
-
PlatformControllerCreateResponse,
|
|
202
|
-
PlatformControllerGetPlatformListResponse,
|
|
203
|
-
PlatformControllerMatchPlatformsData,
|
|
204
|
-
PlatformControllerMatchPlatformsResponse,
|
|
205
|
-
PlatformControllerUpdateData,
|
|
206
|
-
PlatformControllerUpdateResponse,
|
|
207
|
-
PlatformControllerDeleteData,
|
|
208
|
-
PlatformControllerDeleteResponse,
|
|
209
237
|
ProviderSyncControllerSyncData,
|
|
210
238
|
ProviderSyncControllerSyncResponse,
|
|
211
239
|
ProviderSyncControllerGetSupportedProvidersData,
|
|
212
240
|
ProviderSyncControllerGetSupportedProvidersResponse,
|
|
213
241
|
ProviderSyncControllerIsProviderSupportedData,
|
|
214
242
|
ProviderSyncControllerIsProviderSupportedResponse,
|
|
243
|
+
ExternalAccountLinkControllerCreateData,
|
|
244
|
+
ExternalAccountLinkControllerCreateResponse,
|
|
245
|
+
ExternalAccountLinkControllerFindAllData,
|
|
246
|
+
ExternalAccountLinkControllerFindAllResponse,
|
|
247
|
+
ExternalAccountLinkControllerFindOneData,
|
|
248
|
+
ExternalAccountLinkControllerFindOneResponse,
|
|
249
|
+
ExternalAccountLinkControllerRemoveData,
|
|
250
|
+
ExternalAccountLinkControllerRemoveResponse,
|
|
215
251
|
TelemetryControllerReportTelemetryData,
|
|
216
252
|
TelemetryControllerReportTelemetryResponse,
|
|
217
253
|
TelemetryControllerReportCoverageMissData,
|
|
@@ -224,6 +260,19 @@ import type {
|
|
|
224
260
|
NlpControllerClearSessionResponse,
|
|
225
261
|
NlpControllerGetSessionData,
|
|
226
262
|
NlpControllerGetSessionResponse,
|
|
263
|
+
PlatformControllerFindAllResponse,
|
|
264
|
+
PlatformControllerCreateData,
|
|
265
|
+
PlatformControllerCreateResponse,
|
|
266
|
+
PlatformControllerGetPlatformListData,
|
|
267
|
+
PlatformControllerGetPlatformListResponse,
|
|
268
|
+
PlatformControllerMatchPlatformsData,
|
|
269
|
+
PlatformControllerMatchPlatformsResponse,
|
|
270
|
+
PlatformControllerGetPlatformStandardsData,
|
|
271
|
+
PlatformControllerGetPlatformStandardsResponse,
|
|
272
|
+
PlatformControllerUpdateData,
|
|
273
|
+
PlatformControllerUpdateResponse,
|
|
274
|
+
PlatformControllerDeleteData,
|
|
275
|
+
PlatformControllerDeleteResponse,
|
|
227
276
|
DashboardControllerGetNetWorthData,
|
|
228
277
|
DashboardControllerGetNetWorthResponse,
|
|
229
278
|
DashboardControllerGetAccountsData,
|
|
@@ -232,31 +281,17 @@ import type {
|
|
|
232
281
|
DashboardControllerGetCashFlowResponse,
|
|
233
282
|
DashboardControllerGetExpensesData,
|
|
234
283
|
DashboardControllerGetExpensesResponse,
|
|
284
|
+
DashboardControllerGetAdvisorContextData,
|
|
285
|
+
DashboardControllerGetAdvisorContextResponse,
|
|
235
286
|
HoldingPnlControllerGetHoldingPnlData,
|
|
236
287
|
HoldingPnlControllerGetHoldingPnlResponse,
|
|
237
|
-
PriceControllerCreateData,
|
|
238
|
-
PriceControllerCreateResponse,
|
|
239
|
-
PriceControllerFindAllData,
|
|
240
|
-
PriceControllerFindAllResponse,
|
|
241
|
-
PriceControllerFindOneData,
|
|
242
|
-
PriceControllerFindOneResponse,
|
|
243
|
-
PriceControllerUpdateData,
|
|
244
|
-
PriceControllerUpdateResponse,
|
|
245
|
-
PriceControllerDeleteData,
|
|
246
|
-
PriceControllerDeleteResponse,
|
|
247
|
-
PriceControllerBulkCreateData,
|
|
248
|
-
PriceControllerBulkCreateResponse,
|
|
249
|
-
ReportingControllerGetPortfolioTrendsData,
|
|
250
|
-
ReportingControllerGetPortfolioTrendsResponse,
|
|
251
|
-
ReportingControllerGetCashFlowTrendsData,
|
|
252
|
-
ReportingControllerGetCashFlowTrendsResponse,
|
|
253
|
-
ReportingControllerGenerateSnapshotData,
|
|
254
|
-
ReportingControllerGenerateSnapshotResponse,
|
|
255
|
-
ReportingControllerBackfillSnapshotsData,
|
|
256
|
-
ReportingControllerBackfillSnapshotsResponse,
|
|
257
288
|
ApiKeysControllerCreateApiKeyResponse,
|
|
258
289
|
AuthControllerAccessTokenLoginData,
|
|
259
290
|
AuthControllerAccessTokenLoginResponse,
|
|
291
|
+
AuthControllerAdvisorTokenLoginData,
|
|
292
|
+
AuthControllerAdvisorTokenLoginResponse,
|
|
293
|
+
ParserContributionControllerCreateData,
|
|
294
|
+
ParserContributionControllerCreateResponse,
|
|
260
295
|
CacheControllerFlushCacheResponse,
|
|
261
296
|
ExchangeRateControllerGetExchangeRateData,
|
|
262
297
|
ExchangeRateControllerGetExchangeRateResponse,
|
|
@@ -268,7 +303,11 @@ import type {
|
|
|
268
303
|
HealthControllerResetCircuitBreakerData,
|
|
269
304
|
HealthControllerResetCircuitBreakerResponse,
|
|
270
305
|
HealthControllerGetMetricsResponse,
|
|
271
|
-
InfoControllerGetInfoResponse
|
|
306
|
+
InfoControllerGetInfoResponse,
|
|
307
|
+
SymbolControllerSearchData,
|
|
308
|
+
SymbolControllerSearchResponse,
|
|
309
|
+
SymbolControllerGetQuoteData,
|
|
310
|
+
SymbolControllerGetQuoteResponse
|
|
272
311
|
} from './types.gen';
|
|
273
312
|
|
|
274
313
|
export class BeanAccountsService {
|
|
@@ -306,7 +345,7 @@ export class BeanAccountsService {
|
|
|
306
345
|
* @param data.type Filter by account type
|
|
307
346
|
* @param data.status Filter by status
|
|
308
347
|
* @param data.isCustom Filter by custom (user-created) accounts only
|
|
309
|
-
* @param data.search Search term
|
|
348
|
+
* @param data.search Search term matched against account path and user-set display name (case-insensitive)
|
|
310
349
|
* @param data.limit Maximum number of results
|
|
311
350
|
* @param data.offset Number of results to skip
|
|
312
351
|
* @returns AccountListResponseDto Accounts retrieved successfully
|
|
@@ -387,7 +426,7 @@ export class BeanAccountsService {
|
|
|
387
426
|
|
|
388
427
|
/**
|
|
389
428
|
* Delete account
|
|
390
|
-
* Deletes an account (only if no transactions)
|
|
429
|
+
* Deletes an account (only if no active transactions; voided/superseded residual postings are cleaned up)
|
|
391
430
|
* @param data The data for the request.
|
|
392
431
|
* @param data.id Account UUID
|
|
393
432
|
* @param data.region Region code for tenant context
|
|
@@ -406,7 +445,7 @@ export class BeanAccountsService {
|
|
|
406
445
|
},
|
|
407
446
|
errors: {
|
|
408
447
|
404: 'Account not found',
|
|
409
|
-
409: 'Account has transactions and cannot be deleted'
|
|
448
|
+
409: 'Account has active transactions and cannot be deleted'
|
|
410
449
|
}
|
|
411
450
|
});
|
|
412
451
|
}
|
|
@@ -468,16 +507,45 @@ export class BeanAccountsService {
|
|
|
468
507
|
}
|
|
469
508
|
});
|
|
470
509
|
}
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* Post an opening-balance transaction
|
|
513
|
+
* Posts a double-entry opening-balance transaction against Equity:Opening-Balances for an existing Assets/Liabilities account. At most one active opening balance per account.
|
|
514
|
+
* @param data The data for the request.
|
|
515
|
+
* @param data.id Account UUID
|
|
516
|
+
* @param data.region Region code for tenant context
|
|
517
|
+
* @param data.requestBody
|
|
518
|
+
* @returns OpeningBalanceResultDto Opening-balance transaction created
|
|
519
|
+
* @throws ApiError
|
|
520
|
+
*/
|
|
521
|
+
public static accountControllerAddOpeningBalance(
|
|
522
|
+
data: AccountControllerAddOpeningBalanceData
|
|
523
|
+
): CancelablePromise<AccountControllerAddOpeningBalanceResponse> {
|
|
524
|
+
return __request(OpenAPI, {
|
|
525
|
+
method: 'POST',
|
|
526
|
+
url: '/api/v1/{region}/bean/accounts/{id}/opening-balance',
|
|
527
|
+
path: {
|
|
528
|
+
id: data.id,
|
|
529
|
+
region: data.region
|
|
530
|
+
},
|
|
531
|
+
body: data.requestBody,
|
|
532
|
+
mediaType: 'application/json',
|
|
533
|
+
errors: {
|
|
534
|
+
404: 'Account not found',
|
|
535
|
+
409: 'An opening balance already exists for this account'
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
}
|
|
471
539
|
}
|
|
472
540
|
|
|
473
541
|
export class BeanAccountStandardsService {
|
|
474
542
|
/**
|
|
475
543
|
* Get account templates
|
|
476
|
-
* Returns predefined account templates for a region. Supports filtering by account type and search term.
|
|
544
|
+
* Returns predefined account templates for a region. Supports filtering by account type and search term. Not-yet-open region codes return the universal-only catalog (#759).
|
|
477
545
|
* @param data The data for the request.
|
|
478
|
-
* @param data.region Region code (
|
|
546
|
+
* @param data.region Region code (any ISO alpha-2; not-yet-open codes return the universal-only catalog)
|
|
479
547
|
* @param data.type Filter by account type
|
|
480
|
-
* @param data.search Search term for path or
|
|
548
|
+
* @param data.search Search term for path, description, aliases, or localized display name
|
|
481
549
|
* @returns AccountStandardListResponseDto Account templates retrieved successfully
|
|
482
550
|
* @throws ApiError
|
|
483
551
|
*/
|
|
@@ -499,9 +567,9 @@ export class BeanAccountStandardsService {
|
|
|
499
567
|
|
|
500
568
|
/**
|
|
501
569
|
* Get template metadata for an account path
|
|
502
|
-
* Returns
|
|
570
|
+
* Returns root type for a template path.
|
|
503
571
|
* @param data The data for the request.
|
|
504
|
-
* @param data.region Region code for tenant context
|
|
572
|
+
* @param data.region Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
|
|
505
573
|
* @param data.path Account path to check
|
|
506
574
|
* @returns TemplateMetadataResponseDto Template metadata retrieved successfully
|
|
507
575
|
* @throws ApiError
|
|
@@ -523,9 +591,9 @@ export class BeanAccountStandardsService {
|
|
|
523
591
|
|
|
524
592
|
/**
|
|
525
593
|
* Get available regions with hierarchy
|
|
526
|
-
* Returns
|
|
594
|
+
* Returns the full region catalog (every ISO 3166-1 entry) with an 'open' flag and inheritance metadata (#759)
|
|
527
595
|
* @param data The data for the request.
|
|
528
|
-
* @param data.region Region code for tenant context
|
|
596
|
+
* @param data.region Region code for tenant context. Not-yet-open codes degrade to the universal-only catalog (#759)
|
|
529
597
|
* @returns RegionsMetadataResponseDto Regions metadata retrieved successfully
|
|
530
598
|
* @throws ApiError
|
|
531
599
|
*/
|
|
@@ -582,10 +650,11 @@ export class BeanTransactionsService {
|
|
|
582
650
|
* @param data.offset Number of items to skip (default: 0)
|
|
583
651
|
* @param data.dateFrom Filter by start date (inclusive), format: YYYY-MM-DD
|
|
584
652
|
* @param data.dateTo Filter by end date (inclusive), format: YYYY-MM-DD
|
|
585
|
-
* @param data.status Filter by transaction status
|
|
653
|
+
* @param data.status Filter by transaction status: single value, comma-separated multi-value (e.g. VOIDED,SUPERSEDED), or ALL to include audit rows. Defaults to ACTIVE-only (ADR-0128; previously unfiltered — breaking change).
|
|
586
654
|
* @param data.search Search in narration and payee fields (max 200 chars)
|
|
587
655
|
* @param data.accountId Filter by account ID (transactions with postings to this account)
|
|
588
|
-
* @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an
|
|
656
|
+
* @param data.category Filter by ADR-0075 functional category (Group segment); matches any posting to an account whose derived Group segment equals this value. Must be accompanied by flow (ADR-0126).
|
|
657
|
+
* @param data.flow Required when category is present (400 otherwise) and vice versa (ADR-0126). Restricts the category account set to the flow root (income → Income:, expense → Expenses:) and drives the per-leg sign normalization of row viewpointAmount and the summary. OpenAPI cannot express conditional requiredness — the pairing is enforced at runtime.
|
|
589
658
|
* @returns TransactionListResponseDto Transaction list
|
|
590
659
|
* @throws ApiError
|
|
591
660
|
*/
|
|
@@ -606,7 +675,8 @@ export class BeanTransactionsService {
|
|
|
606
675
|
status: data.status,
|
|
607
676
|
search: data.search,
|
|
608
677
|
accountId: data.accountId,
|
|
609
|
-
category: data.category
|
|
678
|
+
category: data.category,
|
|
679
|
+
flow: data.flow
|
|
610
680
|
},
|
|
611
681
|
errors: {
|
|
612
682
|
400: 'Validation failed',
|
|
@@ -643,6 +713,34 @@ export class BeanTransactionsService {
|
|
|
643
713
|
});
|
|
644
714
|
}
|
|
645
715
|
|
|
716
|
+
/**
|
|
717
|
+
* Batch void transactions
|
|
718
|
+
* Soft-deletes (VOIDED) a batch of the caller's ACTIVE transactions in one DB transaction. Voiding releases each row's importId dedup slot, so re-importing the same file after an undo batch-void imports every row again instead of skipping them as duplicates.
|
|
719
|
+
* @param data The data for the request.
|
|
720
|
+
* @param data.region Region code for tenant context
|
|
721
|
+
* @param data.requestBody Batch void request (1-500 unique transaction IDs)
|
|
722
|
+
* @returns BatchVoidResultDto Batch void result: count of rows voided plus ids not found / no longer ACTIVE
|
|
723
|
+
* @throws ApiError
|
|
724
|
+
*/
|
|
725
|
+
public static transactionControllerBatchVoid(
|
|
726
|
+
data: TransactionControllerBatchVoidData
|
|
727
|
+
): CancelablePromise<TransactionControllerBatchVoidResponse> {
|
|
728
|
+
return __request(OpenAPI, {
|
|
729
|
+
method: 'POST',
|
|
730
|
+
url: '/api/v1/{region}/bean/transactions/batch-void',
|
|
731
|
+
path: {
|
|
732
|
+
region: data.region
|
|
733
|
+
},
|
|
734
|
+
body: data.requestBody,
|
|
735
|
+
mediaType: 'application/json',
|
|
736
|
+
errors: {
|
|
737
|
+
400: 'Validation failed (empty, over 500, duplicate or non-string ids)',
|
|
738
|
+
401: 'Authentication required',
|
|
739
|
+
403: 'Batch contains ids owned by another user — whole request rejected, nothing committed'
|
|
740
|
+
}
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
|
|
646
744
|
/**
|
|
647
745
|
* Correct (supersede) a transaction
|
|
648
746
|
* Atomically voids the original (SUPERSEDED) and creates a replacement through the full validation pipeline.
|
|
@@ -794,7 +892,7 @@ export class BeanBalancesService {
|
|
|
794
892
|
* Query account balance
|
|
795
893
|
* Calculate account balance at a specific date for a single currency
|
|
796
894
|
* @param data The data for the request.
|
|
797
|
-
* @param data.account Account name (e.g., "Assets:
|
|
895
|
+
* @param data.account Account name (e.g., "Assets:Checking")
|
|
798
896
|
* @param data.region Region code for tenant context
|
|
799
897
|
* @param data.date Date to calculate balance at (ISO 8601 format)
|
|
800
898
|
* @param data.currency Currency to query (e.g., "USD", "CNY")
|
|
@@ -987,1492 +1085,1862 @@ export class BeanReviewsService {
|
|
|
987
1085
|
}
|
|
988
1086
|
}
|
|
989
1087
|
|
|
990
|
-
export class
|
|
1088
|
+
export class BeanTransactionRulesService {
|
|
991
1089
|
/**
|
|
992
|
-
* Create a new
|
|
993
|
-
* Creates a new
|
|
1090
|
+
* Create a new transaction rule (or upsert if upsertByPayee=true)
|
|
1091
|
+
* Creates a new rule. If upsertByPayee=true, updates existing rule matching payeeKeywords[0] instead of creating duplicate.
|
|
994
1092
|
* @param data The data for the request.
|
|
1093
|
+
* @param data.region Region code for tenant context
|
|
995
1094
|
* @param data.requestBody
|
|
996
|
-
* @returns
|
|
1095
|
+
* @returns TransactionRuleResponseDto Rule updated successfully (upsert mode)
|
|
997
1096
|
* @throws ApiError
|
|
998
1097
|
*/
|
|
999
|
-
public static
|
|
1000
|
-
data:
|
|
1001
|
-
): CancelablePromise<
|
|
1098
|
+
public static transactionRuleControllerCreate(
|
|
1099
|
+
data: TransactionRuleControllerCreateData
|
|
1100
|
+
): CancelablePromise<TransactionRuleControllerCreateResponse> {
|
|
1002
1101
|
return __request(OpenAPI, {
|
|
1003
1102
|
method: 'POST',
|
|
1004
|
-
url: '/api/v1/bean/
|
|
1103
|
+
url: '/api/v1/{region}/bean/transaction-rules',
|
|
1104
|
+
path: {
|
|
1105
|
+
region: data.region
|
|
1106
|
+
},
|
|
1005
1107
|
body: data.requestBody,
|
|
1006
1108
|
mediaType: 'application/json',
|
|
1007
1109
|
errors: {
|
|
1008
|
-
400: '
|
|
1009
|
-
|
|
1110
|
+
400: 'Validation failed',
|
|
1111
|
+
401: 'Unauthorized',
|
|
1112
|
+
409: 'Resource conflict - another process is updating this rule'
|
|
1010
1113
|
}
|
|
1011
1114
|
});
|
|
1012
1115
|
}
|
|
1013
1116
|
|
|
1014
1117
|
/**
|
|
1015
|
-
*
|
|
1016
|
-
* Returns all payee mappings for the authenticated user with optional filtering
|
|
1118
|
+
* Get all transaction rules for user
|
|
1017
1119
|
* @param data The data for the request.
|
|
1018
|
-
* @param data.
|
|
1019
|
-
* @param data.
|
|
1020
|
-
* @param data.
|
|
1021
|
-
* @param data.
|
|
1022
|
-
* @param data.
|
|
1023
|
-
* @
|
|
1120
|
+
* @param data.region Region code for tenant context
|
|
1121
|
+
* @param data.limit Max results per page (default: 20, max: 100)
|
|
1122
|
+
* @param data.offset Pagination offset (default: 0)
|
|
1123
|
+
* @param data.enabled Filter by enabled status
|
|
1124
|
+
* @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
|
|
1125
|
+
* @param data.autoApplyEnabled Filter by auto-apply status
|
|
1126
|
+
* @returns TransactionRuleListResponseDto List of rules
|
|
1024
1127
|
* @throws ApiError
|
|
1025
1128
|
*/
|
|
1026
|
-
public static
|
|
1027
|
-
data:
|
|
1028
|
-
): CancelablePromise<
|
|
1129
|
+
public static transactionRuleControllerList(
|
|
1130
|
+
data: TransactionRuleControllerListData
|
|
1131
|
+
): CancelablePromise<TransactionRuleControllerListResponse> {
|
|
1029
1132
|
return __request(OpenAPI, {
|
|
1030
1133
|
method: 'GET',
|
|
1031
|
-
url: '/api/v1/bean/
|
|
1134
|
+
url: '/api/v1/{region}/bean/transaction-rules',
|
|
1135
|
+
path: {
|
|
1136
|
+
region: data.region
|
|
1137
|
+
},
|
|
1032
1138
|
query: {
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1139
|
+
limit: data.limit,
|
|
1140
|
+
offset: data.offset,
|
|
1141
|
+
enabled: data.enabled,
|
|
1142
|
+
learningSource: data.learningSource,
|
|
1143
|
+
autoApplyEnabled: data.autoApplyEnabled
|
|
1144
|
+
},
|
|
1145
|
+
errors: {
|
|
1146
|
+
401: 'Unauthorized'
|
|
1038
1147
|
}
|
|
1039
1148
|
});
|
|
1040
1149
|
}
|
|
1041
1150
|
|
|
1042
1151
|
/**
|
|
1043
|
-
*
|
|
1044
|
-
* Returns active payee names matching the query, sorted by recent usage. Used for transaction input autocomplete.
|
|
1152
|
+
* Validate transaction rule configuration
|
|
1045
1153
|
* @param data The data for the request.
|
|
1046
|
-
* @param data.
|
|
1047
|
-
* @param data.
|
|
1048
|
-
* @returns
|
|
1154
|
+
* @param data.region Region code for tenant context
|
|
1155
|
+
* @param data.requestBody
|
|
1156
|
+
* @returns ValidateRuleResponseDto Validation result
|
|
1049
1157
|
* @throws ApiError
|
|
1050
1158
|
*/
|
|
1051
|
-
public static
|
|
1052
|
-
data:
|
|
1053
|
-
): CancelablePromise<
|
|
1159
|
+
public static transactionRuleControllerValidate(
|
|
1160
|
+
data: TransactionRuleControllerValidateData
|
|
1161
|
+
): CancelablePromise<TransactionRuleControllerValidateResponse> {
|
|
1054
1162
|
return __request(OpenAPI, {
|
|
1055
|
-
method: '
|
|
1056
|
-
url: '/api/v1/bean/
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1163
|
+
method: 'POST',
|
|
1164
|
+
url: '/api/v1/{region}/bean/transaction-rules/validate',
|
|
1165
|
+
path: {
|
|
1166
|
+
region: data.region
|
|
1167
|
+
},
|
|
1168
|
+
body: data.requestBody,
|
|
1169
|
+
mediaType: 'application/json',
|
|
1170
|
+
errors: {
|
|
1171
|
+
400: 'Validation failed',
|
|
1172
|
+
401: 'Unauthorized'
|
|
1060
1173
|
}
|
|
1061
1174
|
});
|
|
1062
1175
|
}
|
|
1063
1176
|
|
|
1064
1177
|
/**
|
|
1065
|
-
*
|
|
1066
|
-
* Returns the most frequently used payees, sorted by use count. Used for statistics and analytics.
|
|
1178
|
+
* Bulk create transaction rules
|
|
1067
1179
|
* @param data The data for the request.
|
|
1068
|
-
* @param data.
|
|
1069
|
-
* @
|
|
1180
|
+
* @param data.region Region code for tenant context
|
|
1181
|
+
* @param data.requestBody
|
|
1182
|
+
* @returns BulkCreateRulesResponseDto Bulk create completed
|
|
1070
1183
|
* @throws ApiError
|
|
1071
1184
|
*/
|
|
1072
|
-
public static
|
|
1073
|
-
data:
|
|
1074
|
-
): CancelablePromise<
|
|
1185
|
+
public static transactionRuleControllerBulkCreate(
|
|
1186
|
+
data: TransactionRuleControllerBulkCreateData
|
|
1187
|
+
): CancelablePromise<TransactionRuleControllerBulkCreateResponse> {
|
|
1075
1188
|
return __request(OpenAPI, {
|
|
1076
|
-
method: '
|
|
1077
|
-
url: '/api/v1/bean/
|
|
1078
|
-
|
|
1079
|
-
|
|
1189
|
+
method: 'POST',
|
|
1190
|
+
url: '/api/v1/{region}/bean/transaction-rules/bulk',
|
|
1191
|
+
path: {
|
|
1192
|
+
region: data.region
|
|
1193
|
+
},
|
|
1194
|
+
body: data.requestBody,
|
|
1195
|
+
mediaType: 'application/json',
|
|
1196
|
+
errors: {
|
|
1197
|
+
400: 'Invalid bulk create data',
|
|
1198
|
+
401: 'Unauthorized'
|
|
1080
1199
|
}
|
|
1081
1200
|
});
|
|
1082
1201
|
}
|
|
1083
1202
|
|
|
1084
1203
|
/**
|
|
1085
|
-
*
|
|
1086
|
-
* Returns a specific payee mapping by its UUID
|
|
1204
|
+
* Export transaction rules
|
|
1087
1205
|
* @param data The data for the request.
|
|
1088
|
-
* @param data.
|
|
1089
|
-
* @
|
|
1206
|
+
* @param data.format Export format (currently only JSON supported)
|
|
1207
|
+
* @param data.region Region code for tenant context
|
|
1208
|
+
* @returns ExportRulesResponseDto Exported rules
|
|
1090
1209
|
* @throws ApiError
|
|
1091
1210
|
*/
|
|
1092
|
-
public static
|
|
1093
|
-
data:
|
|
1094
|
-
): CancelablePromise<
|
|
1211
|
+
public static transactionRuleControllerExport(
|
|
1212
|
+
data: TransactionRuleControllerExportData
|
|
1213
|
+
): CancelablePromise<TransactionRuleControllerExportResponse> {
|
|
1095
1214
|
return __request(OpenAPI, {
|
|
1096
1215
|
method: 'GET',
|
|
1097
|
-
url: '/api/v1/bean/
|
|
1216
|
+
url: '/api/v1/{region}/bean/transaction-rules/export/{format}',
|
|
1098
1217
|
path: {
|
|
1099
|
-
|
|
1218
|
+
format: data.format,
|
|
1219
|
+
region: data.region
|
|
1100
1220
|
},
|
|
1101
1221
|
errors: {
|
|
1102
|
-
|
|
1103
|
-
|
|
1222
|
+
400: 'Unsupported format',
|
|
1223
|
+
401: 'Unauthorized'
|
|
1104
1224
|
}
|
|
1105
1225
|
});
|
|
1106
1226
|
}
|
|
1107
1227
|
|
|
1108
1228
|
/**
|
|
1109
|
-
*
|
|
1110
|
-
* Updates a payee mapping. The payee name cannot be changed after creation.
|
|
1229
|
+
* Get transaction rule statistics
|
|
1111
1230
|
* @param data The data for the request.
|
|
1112
|
-
* @param data.
|
|
1113
|
-
* @param data.
|
|
1114
|
-
* @returns
|
|
1231
|
+
* @param data.period Statistics time period
|
|
1232
|
+
* @param data.region Region code for tenant context
|
|
1233
|
+
* @returns RuleStatisticsResponseDto Rule statistics
|
|
1115
1234
|
* @throws ApiError
|
|
1116
1235
|
*/
|
|
1117
|
-
public static
|
|
1118
|
-
data:
|
|
1119
|
-
): CancelablePromise<
|
|
1236
|
+
public static transactionRuleControllerGetStatistics(
|
|
1237
|
+
data: TransactionRuleControllerGetStatisticsData
|
|
1238
|
+
): CancelablePromise<TransactionRuleControllerGetStatisticsResponse> {
|
|
1120
1239
|
return __request(OpenAPI, {
|
|
1121
|
-
method: '
|
|
1122
|
-
url: '/api/v1/bean/
|
|
1240
|
+
method: 'GET',
|
|
1241
|
+
url: '/api/v1/{region}/bean/transaction-rules/statistics/{period}',
|
|
1123
1242
|
path: {
|
|
1124
|
-
|
|
1243
|
+
period: data.period,
|
|
1244
|
+
region: data.region
|
|
1125
1245
|
},
|
|
1126
|
-
body: data.requestBody,
|
|
1127
|
-
mediaType: 'application/json',
|
|
1128
1246
|
errors: {
|
|
1129
|
-
|
|
1130
|
-
404: 'Payee not found'
|
|
1247
|
+
401: 'Unauthorized'
|
|
1131
1248
|
}
|
|
1132
1249
|
});
|
|
1133
1250
|
}
|
|
1134
1251
|
|
|
1135
1252
|
/**
|
|
1136
|
-
*
|
|
1137
|
-
* Soft deletes a payee by marking it as inactive. Inactive payees will not appear in autocomplete suggestions.
|
|
1253
|
+
* Get transaction rule detail
|
|
1138
1254
|
* @param data The data for the request.
|
|
1139
|
-
* @param data.
|
|
1140
|
-
* @
|
|
1255
|
+
* @param data.ruleId Rule ID
|
|
1256
|
+
* @param data.region Region code for tenant context
|
|
1257
|
+
* @returns TransactionRuleResponseDto Rule details
|
|
1141
1258
|
* @throws ApiError
|
|
1142
1259
|
*/
|
|
1143
|
-
public static
|
|
1144
|
-
data:
|
|
1145
|
-
): CancelablePromise<
|
|
1260
|
+
public static transactionRuleControllerGetDetail(
|
|
1261
|
+
data: TransactionRuleControllerGetDetailData
|
|
1262
|
+
): CancelablePromise<TransactionRuleControllerGetDetailResponse> {
|
|
1146
1263
|
return __request(OpenAPI, {
|
|
1147
|
-
method: '
|
|
1148
|
-
url: '/api/v1/bean/
|
|
1264
|
+
method: 'GET',
|
|
1265
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
1149
1266
|
path: {
|
|
1150
|
-
|
|
1267
|
+
ruleId: data.ruleId,
|
|
1268
|
+
region: data.region
|
|
1151
1269
|
},
|
|
1152
1270
|
errors: {
|
|
1153
|
-
|
|
1271
|
+
401: 'Unauthorized',
|
|
1272
|
+
403: 'Forbidden - not owner of rule',
|
|
1273
|
+
404: 'Rule not found'
|
|
1154
1274
|
}
|
|
1155
1275
|
});
|
|
1156
1276
|
}
|
|
1157
|
-
}
|
|
1158
1277
|
|
|
1159
|
-
export class AdminPayeeProfilesService {
|
|
1160
1278
|
/**
|
|
1161
|
-
*
|
|
1162
|
-
* Creates a new global payee profile. The canonical name must be unique (case-insensitive).
|
|
1279
|
+
* Update a transaction rule
|
|
1163
1280
|
* @param data The data for the request.
|
|
1281
|
+
* @param data.ruleId Rule ID to update
|
|
1282
|
+
* @param data.region Region code for tenant context
|
|
1164
1283
|
* @param data.requestBody
|
|
1165
|
-
* @returns
|
|
1284
|
+
* @returns TransactionRuleResponseDto Rule updated successfully
|
|
1166
1285
|
* @throws ApiError
|
|
1167
1286
|
*/
|
|
1168
|
-
public static
|
|
1169
|
-
data:
|
|
1170
|
-
): CancelablePromise<
|
|
1287
|
+
public static transactionRuleControllerUpdate(
|
|
1288
|
+
data: TransactionRuleControllerUpdateData
|
|
1289
|
+
): CancelablePromise<TransactionRuleControllerUpdateResponse> {
|
|
1171
1290
|
return __request(OpenAPI, {
|
|
1172
|
-
method: '
|
|
1173
|
-
url: '/api/v1/
|
|
1291
|
+
method: 'PUT',
|
|
1292
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
1293
|
+
path: {
|
|
1294
|
+
ruleId: data.ruleId,
|
|
1295
|
+
region: data.region
|
|
1296
|
+
},
|
|
1174
1297
|
body: data.requestBody,
|
|
1175
1298
|
mediaType: 'application/json',
|
|
1176
1299
|
errors: {
|
|
1177
1300
|
400: 'Validation failed',
|
|
1178
|
-
|
|
1179
|
-
|
|
1301
|
+
401: 'Unauthorized',
|
|
1302
|
+
403: 'Forbidden - not owner of rule',
|
|
1303
|
+
404: 'Rule not found',
|
|
1304
|
+
409: 'Resource conflict - rule is being modified by another process'
|
|
1180
1305
|
}
|
|
1181
1306
|
});
|
|
1182
1307
|
}
|
|
1183
1308
|
|
|
1184
1309
|
/**
|
|
1185
|
-
*
|
|
1186
|
-
* Returns all payee profiles with optional filtering by category, country, verification status, etc.
|
|
1310
|
+
* Delete a transaction rule
|
|
1187
1311
|
* @param data The data for the request.
|
|
1188
|
-
* @param data.
|
|
1189
|
-
* @param data.
|
|
1190
|
-
* @
|
|
1191
|
-
* @param data.isActive Filter by active status (default: true - show only active)
|
|
1192
|
-
* @param data.verified Filter by verification status. true = verified only, false = unverified only
|
|
1193
|
-
* @param data.dataSource Filter by data source
|
|
1194
|
-
* @returns PayeeProfileListResponseDto Payee profiles retrieved successfully
|
|
1312
|
+
* @param data.ruleId Rule ID to delete
|
|
1313
|
+
* @param data.region Region code for tenant context
|
|
1314
|
+
* @returns void Rule deleted successfully
|
|
1195
1315
|
* @throws ApiError
|
|
1196
1316
|
*/
|
|
1197
|
-
public static
|
|
1198
|
-
data:
|
|
1199
|
-
): CancelablePromise<
|
|
1317
|
+
public static transactionRuleControllerDelete(
|
|
1318
|
+
data: TransactionRuleControllerDeleteData
|
|
1319
|
+
): CancelablePromise<TransactionRuleControllerDeleteResponse> {
|
|
1200
1320
|
return __request(OpenAPI, {
|
|
1201
|
-
method: '
|
|
1202
|
-
url: '/api/v1/
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
country: data.country,
|
|
1207
|
-
isActive: data.isActive,
|
|
1208
|
-
verified: data.verified,
|
|
1209
|
-
dataSource: data.dataSource
|
|
1321
|
+
method: 'DELETE',
|
|
1322
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}',
|
|
1323
|
+
path: {
|
|
1324
|
+
ruleId: data.ruleId,
|
|
1325
|
+
region: data.region
|
|
1210
1326
|
},
|
|
1211
1327
|
errors: {
|
|
1212
|
-
|
|
1328
|
+
401: 'Unauthorized',
|
|
1329
|
+
403: 'Forbidden - not owner of rule',
|
|
1330
|
+
404: 'Rule not found',
|
|
1331
|
+
409: 'Resource conflict - rule is being modified by another process'
|
|
1213
1332
|
}
|
|
1214
1333
|
});
|
|
1215
1334
|
}
|
|
1216
1335
|
|
|
1217
1336
|
/**
|
|
1218
|
-
*
|
|
1219
|
-
* Returns a single payee profile by its ID.
|
|
1337
|
+
* Test rule matching
|
|
1220
1338
|
* @param data The data for the request.
|
|
1221
|
-
* @param data.
|
|
1222
|
-
* @
|
|
1339
|
+
* @param data.ruleId Rule ID to test
|
|
1340
|
+
* @param data.region Region code for tenant context
|
|
1341
|
+
* @param data.requestBody
|
|
1342
|
+
* @returns TestRuleResponseDto Test result
|
|
1223
1343
|
* @throws ApiError
|
|
1224
1344
|
*/
|
|
1225
|
-
public static
|
|
1226
|
-
data:
|
|
1227
|
-
): CancelablePromise<
|
|
1345
|
+
public static transactionRuleControllerTest(
|
|
1346
|
+
data: TransactionRuleControllerTestData
|
|
1347
|
+
): CancelablePromise<TransactionRuleControllerTestResponse> {
|
|
1228
1348
|
return __request(OpenAPI, {
|
|
1229
|
-
method: '
|
|
1230
|
-
url: '/api/v1/
|
|
1349
|
+
method: 'POST',
|
|
1350
|
+
url: '/api/v1/{region}/bean/transaction-rules/{ruleId}/test',
|
|
1231
1351
|
path: {
|
|
1232
|
-
|
|
1352
|
+
ruleId: data.ruleId,
|
|
1353
|
+
region: data.region
|
|
1233
1354
|
},
|
|
1355
|
+
body: data.requestBody,
|
|
1356
|
+
mediaType: 'application/json',
|
|
1234
1357
|
errors: {
|
|
1235
|
-
|
|
1236
|
-
|
|
1358
|
+
401: 'Unauthorized',
|
|
1359
|
+
403: 'Forbidden - not owner of rule',
|
|
1360
|
+
404: 'Rule not found'
|
|
1237
1361
|
}
|
|
1238
1362
|
});
|
|
1239
1363
|
}
|
|
1364
|
+
}
|
|
1240
1365
|
|
|
1366
|
+
export class UsersService {
|
|
1241
1367
|
/**
|
|
1242
|
-
*
|
|
1243
|
-
* Updates an existing payee profile. The canonical name cannot be changed.
|
|
1368
|
+
* Delete own user account
|
|
1244
1369
|
* @param data The data for the request.
|
|
1245
|
-
* @param data.id Payee profile ID (UUID)
|
|
1246
1370
|
* @param data.requestBody
|
|
1247
|
-
* @returns
|
|
1371
|
+
* @returns void User deleted successfully
|
|
1248
1372
|
* @throws ApiError
|
|
1249
1373
|
*/
|
|
1250
|
-
public static
|
|
1251
|
-
data:
|
|
1252
|
-
): CancelablePromise<
|
|
1374
|
+
public static userControllerDeleteOwnUser(
|
|
1375
|
+
data: UserControllerDeleteOwnUserData
|
|
1376
|
+
): CancelablePromise<UserControllerDeleteOwnUserResponse> {
|
|
1253
1377
|
return __request(OpenAPI, {
|
|
1254
|
-
method: '
|
|
1255
|
-
url: '/api/v1/
|
|
1256
|
-
path: {
|
|
1257
|
-
id: data.id
|
|
1258
|
-
},
|
|
1378
|
+
method: 'DELETE',
|
|
1379
|
+
url: '/api/v1/users',
|
|
1259
1380
|
body: data.requestBody,
|
|
1260
1381
|
mediaType: 'application/json',
|
|
1261
1382
|
errors: {
|
|
1262
|
-
403: '
|
|
1263
|
-
404: 'Payee profile not found'
|
|
1383
|
+
403: 'Invalid access token'
|
|
1264
1384
|
}
|
|
1265
1385
|
});
|
|
1266
1386
|
}
|
|
1267
1387
|
|
|
1268
1388
|
/**
|
|
1269
|
-
*
|
|
1270
|
-
* Marks a payee profile as inactive (soft delete). The profile cannot be deleted if it is referenced by user payees.
|
|
1389
|
+
* Get current authenticated user
|
|
1271
1390
|
* @param data The data for the request.
|
|
1272
|
-
* @param data.
|
|
1273
|
-
* @returns
|
|
1391
|
+
* @param data.acceptLanguage
|
|
1392
|
+
* @returns UserResponseDto User retrieved successfully
|
|
1274
1393
|
* @throws ApiError
|
|
1275
1394
|
*/
|
|
1276
|
-
public static
|
|
1277
|
-
data:
|
|
1278
|
-
): CancelablePromise<
|
|
1395
|
+
public static userControllerGetUser(
|
|
1396
|
+
data: UserControllerGetUserData
|
|
1397
|
+
): CancelablePromise<UserControllerGetUserResponse> {
|
|
1398
|
+
return __request(OpenAPI, {
|
|
1399
|
+
method: 'GET',
|
|
1400
|
+
url: '/api/v1/users',
|
|
1401
|
+
headers: {
|
|
1402
|
+
'accept-language': data.acceptLanguage
|
|
1403
|
+
}
|
|
1404
|
+
});
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
/**
|
|
1408
|
+
* Sign up new user
|
|
1409
|
+
* Create a new account with auto-generated access token. Protected by Cloudflare Turnstile to prevent automated signup (when enabled).
|
|
1410
|
+
* @param data The data for the request.
|
|
1411
|
+
* @param data.requestBody
|
|
1412
|
+
* @returns SignupResponseDto User created successfully
|
|
1413
|
+
* @throws ApiError
|
|
1414
|
+
*/
|
|
1415
|
+
public static userControllerSignupUser(
|
|
1416
|
+
data: UserControllerSignupUserData
|
|
1417
|
+
): CancelablePromise<UserControllerSignupUserResponse> {
|
|
1418
|
+
return __request(OpenAPI, {
|
|
1419
|
+
method: 'POST',
|
|
1420
|
+
url: '/api/v1/users',
|
|
1421
|
+
body: data.requestBody,
|
|
1422
|
+
mediaType: 'application/json',
|
|
1423
|
+
errors: {
|
|
1424
|
+
400: 'Invalid Turnstile token (when Turnstile is enabled)',
|
|
1425
|
+
403: 'User signup is disabled'
|
|
1426
|
+
}
|
|
1427
|
+
});
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
/**
|
|
1431
|
+
* Delete user by ID (admin only)
|
|
1432
|
+
* @param data The data for the request.
|
|
1433
|
+
* @param data.id User ID to delete
|
|
1434
|
+
* @returns void User deleted successfully
|
|
1435
|
+
* @throws ApiError
|
|
1436
|
+
*/
|
|
1437
|
+
public static userControllerDeleteUser(
|
|
1438
|
+
data: UserControllerDeleteUserData
|
|
1439
|
+
): CancelablePromise<UserControllerDeleteUserResponse> {
|
|
1279
1440
|
return __request(OpenAPI, {
|
|
1280
1441
|
method: 'DELETE',
|
|
1281
|
-
url: '/api/v1/
|
|
1442
|
+
url: '/api/v1/users/{id}',
|
|
1282
1443
|
path: {
|
|
1283
1444
|
id: data.id
|
|
1284
1445
|
},
|
|
1285
1446
|
errors: {
|
|
1286
|
-
403: '
|
|
1287
|
-
404: 'Payee profile not found',
|
|
1288
|
-
409: 'Payee profile is in use and cannot be deleted'
|
|
1447
|
+
403: 'Cannot delete own account or insufficient permissions'
|
|
1289
1448
|
}
|
|
1290
1449
|
});
|
|
1291
1450
|
}
|
|
1292
1451
|
|
|
1293
1452
|
/**
|
|
1294
|
-
*
|
|
1295
|
-
* Marks a payee profile as verified by setting verifiedAt to current timestamp.
|
|
1453
|
+
* Get user info by user ID
|
|
1296
1454
|
* @param data The data for the request.
|
|
1297
|
-
* @param data.id
|
|
1298
|
-
* @returns
|
|
1455
|
+
* @param data.id User ID
|
|
1456
|
+
* @returns unknown User info retrieved successfully
|
|
1299
1457
|
* @throws ApiError
|
|
1300
1458
|
*/
|
|
1301
|
-
public static
|
|
1302
|
-
data:
|
|
1303
|
-
): CancelablePromise<
|
|
1459
|
+
public static userControllerGetUserInfo(
|
|
1460
|
+
data: UserControllerGetUserInfoData
|
|
1461
|
+
): CancelablePromise<UserControllerGetUserInfoResponse> {
|
|
1304
1462
|
return __request(OpenAPI, {
|
|
1305
|
-
method: '
|
|
1306
|
-
url: '/api/v1/
|
|
1463
|
+
method: 'GET',
|
|
1464
|
+
url: '/api/v1/users/{id}/info',
|
|
1307
1465
|
path: {
|
|
1308
1466
|
id: data.id
|
|
1309
1467
|
},
|
|
1310
1468
|
errors: {
|
|
1311
|
-
403: '
|
|
1312
|
-
404: 'Payee profile not found'
|
|
1469
|
+
403: 'Cannot access other user info without admin permission'
|
|
1313
1470
|
}
|
|
1314
1471
|
});
|
|
1315
1472
|
}
|
|
1316
1473
|
|
|
1317
1474
|
/**
|
|
1318
|
-
*
|
|
1319
|
-
* Removes verification status by setting verifiedAt to null.
|
|
1475
|
+
* Update user settings
|
|
1320
1476
|
* @param data The data for the request.
|
|
1321
|
-
* @param data.
|
|
1322
|
-
* @returns
|
|
1477
|
+
* @param data.requestBody
|
|
1478
|
+
* @returns unknown Settings updated successfully
|
|
1323
1479
|
* @throws ApiError
|
|
1324
1480
|
*/
|
|
1325
|
-
public static
|
|
1326
|
-
data:
|
|
1327
|
-
): CancelablePromise<
|
|
1481
|
+
public static userControllerUpdateUserSetting(
|
|
1482
|
+
data: UserControllerUpdateUserSettingData
|
|
1483
|
+
): CancelablePromise<UserControllerUpdateUserSettingResponse> {
|
|
1484
|
+
return __request(OpenAPI, {
|
|
1485
|
+
method: 'PUT',
|
|
1486
|
+
url: '/api/v1/users/setting',
|
|
1487
|
+
body: data.requestBody,
|
|
1488
|
+
mediaType: 'application/json',
|
|
1489
|
+
errors: {
|
|
1490
|
+
403: 'Insufficient permissions'
|
|
1491
|
+
}
|
|
1492
|
+
});
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
/**
|
|
1496
|
+
* Get all user settings paginated (admin only)
|
|
1497
|
+
* @param data The data for the request.
|
|
1498
|
+
* @param data.pageNo Page number
|
|
1499
|
+
* @param data.pageSize Page size
|
|
1500
|
+
* @returns unknown Settings list retrieved successfully
|
|
1501
|
+
* @throws ApiError
|
|
1502
|
+
*/
|
|
1503
|
+
public static userControllerGetAllUserSettingsByPage(
|
|
1504
|
+
data: UserControllerGetAllUserSettingsByPageData
|
|
1505
|
+
): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
|
|
1506
|
+
return __request(OpenAPI, {
|
|
1507
|
+
method: 'GET',
|
|
1508
|
+
url: '/api/v1/users/settings-by-page',
|
|
1509
|
+
query: {
|
|
1510
|
+
pageNo: data.pageNo,
|
|
1511
|
+
pageSize: data.pageSize
|
|
1512
|
+
}
|
|
1513
|
+
});
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
/**
|
|
1517
|
+
* Get asset and liability summary for current user
|
|
1518
|
+
* @returns unknown Summary retrieved successfully
|
|
1519
|
+
* @throws ApiError
|
|
1520
|
+
*/
|
|
1521
|
+
public static userControllerGetAssetLiabilitySummary(): CancelablePromise<UserControllerGetAssetLiabilitySummaryResponse> {
|
|
1522
|
+
return __request(OpenAPI, {
|
|
1523
|
+
method: 'GET',
|
|
1524
|
+
url: '/api/v1/users/asset-liability-summary'
|
|
1525
|
+
});
|
|
1526
|
+
}
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
export class PropertiesService {
|
|
1530
|
+
/**
|
|
1531
|
+
* Get all system properties
|
|
1532
|
+
* @returns unknown Properties retrieved successfully
|
|
1533
|
+
* @throws ApiError
|
|
1534
|
+
*/
|
|
1535
|
+
public static propertyControllerGetAll(): CancelablePromise<PropertyControllerGetAllResponse> {
|
|
1536
|
+
return __request(OpenAPI, {
|
|
1537
|
+
method: 'GET',
|
|
1538
|
+
url: '/api/v1/admin/properties',
|
|
1539
|
+
errors: {
|
|
1540
|
+
401: 'Unauthorized',
|
|
1541
|
+
403: 'Forbidden - insufficient permissions'
|
|
1542
|
+
}
|
|
1543
|
+
});
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1546
|
+
/**
|
|
1547
|
+
* Get property by key
|
|
1548
|
+
* @param data The data for the request.
|
|
1549
|
+
* @param data.key Property key
|
|
1550
|
+
* @returns unknown Property retrieved successfully
|
|
1551
|
+
* @throws ApiError
|
|
1552
|
+
*/
|
|
1553
|
+
public static propertyControllerGetByKey(
|
|
1554
|
+
data: PropertyControllerGetByKeyData
|
|
1555
|
+
): CancelablePromise<PropertyControllerGetByKeyResponse> {
|
|
1556
|
+
return __request(OpenAPI, {
|
|
1557
|
+
method: 'GET',
|
|
1558
|
+
url: '/api/v1/admin/properties/{key}',
|
|
1559
|
+
path: {
|
|
1560
|
+
key: data.key
|
|
1561
|
+
},
|
|
1562
|
+
errors: {
|
|
1563
|
+
401: 'Unauthorized',
|
|
1564
|
+
403: 'Forbidden - insufficient permissions',
|
|
1565
|
+
404: 'Property not found'
|
|
1566
|
+
}
|
|
1567
|
+
});
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
/**
|
|
1571
|
+
* Update a system property
|
|
1572
|
+
* @param data The data for the request.
|
|
1573
|
+
* @param data.key Property key
|
|
1574
|
+
* @param data.requestBody
|
|
1575
|
+
* @returns unknown Property updated successfully
|
|
1576
|
+
* @throws ApiError
|
|
1577
|
+
*/
|
|
1578
|
+
public static propertyControllerUpdate(
|
|
1579
|
+
data: PropertyControllerUpdateData
|
|
1580
|
+
): CancelablePromise<PropertyControllerUpdateResponse> {
|
|
1581
|
+
return __request(OpenAPI, {
|
|
1582
|
+
method: 'PUT',
|
|
1583
|
+
url: '/api/v1/admin/properties/{key}',
|
|
1584
|
+
path: {
|
|
1585
|
+
key: data.key
|
|
1586
|
+
},
|
|
1587
|
+
body: data.requestBody,
|
|
1588
|
+
mediaType: 'application/json',
|
|
1589
|
+
errors: {
|
|
1590
|
+
401: 'Unauthorized',
|
|
1591
|
+
403: 'Forbidden - insufficient permissions'
|
|
1592
|
+
}
|
|
1593
|
+
});
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
/**
|
|
1597
|
+
* Delete a system property
|
|
1598
|
+
* @param data The data for the request.
|
|
1599
|
+
* @param data.key Property key
|
|
1600
|
+
* @returns void Property deleted successfully
|
|
1601
|
+
* @throws ApiError
|
|
1602
|
+
*/
|
|
1603
|
+
public static propertyControllerDelete(
|
|
1604
|
+
data: PropertyControllerDeleteData
|
|
1605
|
+
): CancelablePromise<PropertyControllerDeleteResponse> {
|
|
1328
1606
|
return __request(OpenAPI, {
|
|
1329
1607
|
method: 'DELETE',
|
|
1330
|
-
url: '/api/v1/admin/
|
|
1608
|
+
url: '/api/v1/admin/properties/{key}',
|
|
1331
1609
|
path: {
|
|
1332
|
-
|
|
1610
|
+
key: data.key
|
|
1333
1611
|
},
|
|
1334
1612
|
errors: {
|
|
1335
|
-
|
|
1336
|
-
|
|
1613
|
+
401: 'Unauthorized',
|
|
1614
|
+
403: 'Forbidden - insufficient permissions',
|
|
1615
|
+
404: 'Property not found'
|
|
1337
1616
|
}
|
|
1338
1617
|
});
|
|
1339
1618
|
}
|
|
1340
1619
|
}
|
|
1341
1620
|
|
|
1342
|
-
export class
|
|
1621
|
+
export class BeanPayeesService {
|
|
1343
1622
|
/**
|
|
1344
|
-
* Create a new
|
|
1345
|
-
* Creates a new
|
|
1623
|
+
* Create a new payee
|
|
1624
|
+
* Creates a new payee mapping for the authenticated user. The payee name must be unique within the user's account.
|
|
1346
1625
|
* @param data The data for the request.
|
|
1347
|
-
* @param data.region Region code for tenant context
|
|
1348
1626
|
* @param data.requestBody
|
|
1349
|
-
* @returns
|
|
1627
|
+
* @returns PayeeResponseDto Payee created successfully
|
|
1350
1628
|
* @throws ApiError
|
|
1351
1629
|
*/
|
|
1352
|
-
public static
|
|
1353
|
-
data:
|
|
1354
|
-
): CancelablePromise<
|
|
1630
|
+
public static payeeControllerCreate(
|
|
1631
|
+
data: PayeeControllerCreateData
|
|
1632
|
+
): CancelablePromise<PayeeControllerCreateResponse> {
|
|
1355
1633
|
return __request(OpenAPI, {
|
|
1356
1634
|
method: 'POST',
|
|
1357
|
-
url: '/api/v1/
|
|
1358
|
-
path: {
|
|
1359
|
-
region: data.region
|
|
1360
|
-
},
|
|
1635
|
+
url: '/api/v1/bean/payees',
|
|
1361
1636
|
body: data.requestBody,
|
|
1362
1637
|
mediaType: 'application/json',
|
|
1363
1638
|
errors: {
|
|
1364
1639
|
400: 'Invalid input data',
|
|
1365
|
-
409: '
|
|
1640
|
+
409: 'Payee already exists'
|
|
1366
1641
|
}
|
|
1367
1642
|
});
|
|
1368
1643
|
}
|
|
1369
1644
|
|
|
1370
1645
|
/**
|
|
1371
|
-
* List user
|
|
1372
|
-
* Returns all
|
|
1646
|
+
* List user payees
|
|
1647
|
+
* Returns all payee mappings for the authenticated user with optional filtering
|
|
1373
1648
|
* @param data The data for the request.
|
|
1374
|
-
* @param data.
|
|
1375
|
-
* @param data.
|
|
1376
|
-
* @param data.
|
|
1377
|
-
* @returns
|
|
1649
|
+
* @param data.search Search term for payee name (partial match, case-insensitive). Useful for autocomplete.
|
|
1650
|
+
* @param data.payee Filter by exact payee name match
|
|
1651
|
+
* @param data.category Filter by custom category
|
|
1652
|
+
* @param data.tag Filter by custom tag (returns payees that have this tag)
|
|
1653
|
+
* @param data.isActive Filter by active status. Defaults to true (show only active payees).
|
|
1654
|
+
* @returns PayeeListResponseDto Payees retrieved successfully
|
|
1378
1655
|
* @throws ApiError
|
|
1379
1656
|
*/
|
|
1380
|
-
public static
|
|
1381
|
-
data:
|
|
1382
|
-
): CancelablePromise<
|
|
1657
|
+
public static payeeControllerFindAll(
|
|
1658
|
+
data: PayeeControllerFindAllData = {}
|
|
1659
|
+
): CancelablePromise<PayeeControllerFindAllResponse> {
|
|
1383
1660
|
return __request(OpenAPI, {
|
|
1384
1661
|
method: 'GET',
|
|
1385
|
-
url: '/api/v1/
|
|
1386
|
-
path: {
|
|
1387
|
-
region: data.region
|
|
1388
|
-
},
|
|
1662
|
+
url: '/api/v1/bean/payees',
|
|
1389
1663
|
query: {
|
|
1390
1664
|
search: data.search,
|
|
1391
|
-
|
|
1665
|
+
payee: data.payee,
|
|
1666
|
+
category: data.category,
|
|
1667
|
+
tag: data.tag,
|
|
1668
|
+
isActive: data.isActive
|
|
1392
1669
|
}
|
|
1393
1670
|
});
|
|
1394
1671
|
}
|
|
1395
1672
|
|
|
1396
1673
|
/**
|
|
1397
|
-
* Get
|
|
1398
|
-
* Returns
|
|
1674
|
+
* Get payee autocomplete suggestions
|
|
1675
|
+
* Returns active payee names matching the query, sorted by recent usage. Used for transaction input autocomplete.
|
|
1399
1676
|
* @param data The data for the request.
|
|
1400
|
-
* @param data.
|
|
1401
|
-
* @param data.
|
|
1402
|
-
* @returns
|
|
1677
|
+
* @param data.q Search query for payee name (partial match, case-insensitive)
|
|
1678
|
+
* @param data.limit Maximum number of suggestions
|
|
1679
|
+
* @returns PayeeAutocompleteResponseDto Autocomplete suggestions retrieved successfully
|
|
1403
1680
|
* @throws ApiError
|
|
1404
1681
|
*/
|
|
1405
|
-
public static
|
|
1406
|
-
data:
|
|
1407
|
-
): CancelablePromise<
|
|
1682
|
+
public static payeeControllerAutocomplete(
|
|
1683
|
+
data: PayeeControllerAutocompleteData
|
|
1684
|
+
): CancelablePromise<PayeeControllerAutocompleteResponse> {
|
|
1408
1685
|
return __request(OpenAPI, {
|
|
1409
1686
|
method: 'GET',
|
|
1410
|
-
url: '/api/v1/
|
|
1687
|
+
url: '/api/v1/bean/payees/autocomplete',
|
|
1688
|
+
query: {
|
|
1689
|
+
q: data.q,
|
|
1690
|
+
limit: data.limit
|
|
1691
|
+
}
|
|
1692
|
+
});
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
/**
|
|
1696
|
+
* Get top payees by usage
|
|
1697
|
+
* Returns the most frequently used payees, sorted by use count. Used for statistics and analytics.
|
|
1698
|
+
* @param data The data for the request.
|
|
1699
|
+
* @param data.limit Maximum number of results
|
|
1700
|
+
* @returns PayeeStatsResponseDto Top payees retrieved successfully
|
|
1701
|
+
* @throws ApiError
|
|
1702
|
+
*/
|
|
1703
|
+
public static payeeControllerGetTopPayees(
|
|
1704
|
+
data: PayeeControllerGetTopPayeesData = {}
|
|
1705
|
+
): CancelablePromise<PayeeControllerGetTopPayeesResponse> {
|
|
1706
|
+
return __request(OpenAPI, {
|
|
1707
|
+
method: 'GET',
|
|
1708
|
+
url: '/api/v1/bean/payees/top',
|
|
1709
|
+
query: {
|
|
1710
|
+
limit: data.limit
|
|
1711
|
+
}
|
|
1712
|
+
});
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
/**
|
|
1716
|
+
* Get payee by ID
|
|
1717
|
+
* Returns a specific payee mapping by its UUID
|
|
1718
|
+
* @param data The data for the request.
|
|
1719
|
+
* @param data.id Payee UUID
|
|
1720
|
+
* @returns PayeeResponseDto Payee retrieved successfully
|
|
1721
|
+
* @throws ApiError
|
|
1722
|
+
*/
|
|
1723
|
+
public static payeeControllerFindOne(
|
|
1724
|
+
data: PayeeControllerFindOneData
|
|
1725
|
+
): CancelablePromise<PayeeControllerFindOneResponse> {
|
|
1726
|
+
return __request(OpenAPI, {
|
|
1727
|
+
method: 'GET',
|
|
1728
|
+
url: '/api/v1/bean/payees/{id}',
|
|
1729
|
+
path: {
|
|
1730
|
+
id: data.id
|
|
1731
|
+
},
|
|
1732
|
+
errors: {
|
|
1733
|
+
403: 'Payee belongs to another user',
|
|
1734
|
+
404: 'Payee not found'
|
|
1735
|
+
}
|
|
1736
|
+
});
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1739
|
+
/**
|
|
1740
|
+
* Update payee
|
|
1741
|
+
* Updates a payee mapping. The payee name cannot be changed after creation.
|
|
1742
|
+
* @param data The data for the request.
|
|
1743
|
+
* @param data.id Payee UUID
|
|
1744
|
+
* @param data.requestBody
|
|
1745
|
+
* @returns PayeeResponseDto Payee updated successfully
|
|
1746
|
+
* @throws ApiError
|
|
1747
|
+
*/
|
|
1748
|
+
public static payeeControllerUpdate(
|
|
1749
|
+
data: PayeeControllerUpdateData
|
|
1750
|
+
): CancelablePromise<PayeeControllerUpdateResponse> {
|
|
1751
|
+
return __request(OpenAPI, {
|
|
1752
|
+
method: 'PUT',
|
|
1753
|
+
url: '/api/v1/bean/payees/{id}',
|
|
1754
|
+
path: {
|
|
1755
|
+
id: data.id
|
|
1756
|
+
},
|
|
1757
|
+
body: data.requestBody,
|
|
1758
|
+
mediaType: 'application/json',
|
|
1759
|
+
errors: {
|
|
1760
|
+
400: 'Invalid input data',
|
|
1761
|
+
404: 'Payee not found'
|
|
1762
|
+
}
|
|
1763
|
+
});
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
/**
|
|
1767
|
+
* Delete payee
|
|
1768
|
+
* Soft deletes a payee by marking it as inactive. Inactive payees will not appear in autocomplete suggestions.
|
|
1769
|
+
* @param data The data for the request.
|
|
1770
|
+
* @param data.id Payee UUID
|
|
1771
|
+
* @returns void Payee deleted successfully
|
|
1772
|
+
* @throws ApiError
|
|
1773
|
+
*/
|
|
1774
|
+
public static payeeControllerDelete(
|
|
1775
|
+
data: PayeeControllerDeleteData
|
|
1776
|
+
): CancelablePromise<PayeeControllerDeleteResponse> {
|
|
1777
|
+
return __request(OpenAPI, {
|
|
1778
|
+
method: 'DELETE',
|
|
1779
|
+
url: '/api/v1/bean/payees/{id}',
|
|
1411
1780
|
path: {
|
|
1412
|
-
|
|
1413
|
-
region: data.region
|
|
1781
|
+
id: data.id
|
|
1414
1782
|
},
|
|
1415
1783
|
errors: {
|
|
1416
|
-
404: '
|
|
1784
|
+
404: 'Payee not found'
|
|
1417
1785
|
}
|
|
1418
1786
|
});
|
|
1419
1787
|
}
|
|
1788
|
+
}
|
|
1420
1789
|
|
|
1790
|
+
export class AdminPayeeProfilesService {
|
|
1421
1791
|
/**
|
|
1422
|
-
*
|
|
1423
|
-
*
|
|
1792
|
+
* Create payee profile (Admin only)
|
|
1793
|
+
* Creates a new global payee profile. The canonical name must be unique (case-insensitive).
|
|
1424
1794
|
* @param data The data for the request.
|
|
1425
|
-
* @param data.symbol Commodity symbol
|
|
1426
|
-
* @param data.region Region code for tenant context
|
|
1427
1795
|
* @param data.requestBody
|
|
1428
|
-
* @returns
|
|
1796
|
+
* @returns PayeeProfileResponseDto Payee profile created successfully
|
|
1429
1797
|
* @throws ApiError
|
|
1430
1798
|
*/
|
|
1431
|
-
public static
|
|
1432
|
-
data:
|
|
1433
|
-
): CancelablePromise<
|
|
1799
|
+
public static payeeProfileAdminControllerCreate(
|
|
1800
|
+
data: PayeeProfileAdminControllerCreateData
|
|
1801
|
+
): CancelablePromise<PayeeProfileAdminControllerCreateResponse> {
|
|
1434
1802
|
return __request(OpenAPI, {
|
|
1435
|
-
method: '
|
|
1436
|
-
url: '/api/v1/
|
|
1437
|
-
path: {
|
|
1438
|
-
symbol: data.symbol,
|
|
1439
|
-
region: data.region
|
|
1440
|
-
},
|
|
1803
|
+
method: 'POST',
|
|
1804
|
+
url: '/api/v1/admin/payee-profiles',
|
|
1441
1805
|
body: data.requestBody,
|
|
1442
1806
|
mediaType: 'application/json',
|
|
1443
1807
|
errors: {
|
|
1444
|
-
400: '
|
|
1445
|
-
|
|
1808
|
+
400: 'Validation failed',
|
|
1809
|
+
403: 'Admin access required',
|
|
1810
|
+
409: 'Payee profile already exists'
|
|
1446
1811
|
}
|
|
1447
1812
|
});
|
|
1448
1813
|
}
|
|
1449
1814
|
|
|
1450
1815
|
/**
|
|
1451
|
-
*
|
|
1452
|
-
*
|
|
1816
|
+
* List payee profiles (Admin only)
|
|
1817
|
+
* Returns all payee profiles with optional filtering by category, country, verification status, etc.
|
|
1453
1818
|
* @param data The data for the request.
|
|
1454
|
-
* @param data.
|
|
1455
|
-
* @param data.
|
|
1456
|
-
* @
|
|
1819
|
+
* @param data.search Search term for canonical name and aliases (case-insensitive)
|
|
1820
|
+
* @param data.category Filter by category
|
|
1821
|
+
* @param data.country Filter by country (ISO 3166-1 alpha-2)
|
|
1822
|
+
* @param data.isActive Filter by active status (default: true - show only active)
|
|
1823
|
+
* @param data.verified Filter by verification status. true = verified only, false = unverified only
|
|
1824
|
+
* @param data.dataSource Filter by data source
|
|
1825
|
+
* @returns PayeeProfileListResponseDto Payee profiles retrieved successfully
|
|
1457
1826
|
* @throws ApiError
|
|
1458
1827
|
*/
|
|
1459
|
-
public static
|
|
1460
|
-
data:
|
|
1461
|
-
): CancelablePromise<
|
|
1828
|
+
public static payeeProfileAdminControllerFindAll(
|
|
1829
|
+
data: PayeeProfileAdminControllerFindAllData = {}
|
|
1830
|
+
): CancelablePromise<PayeeProfileAdminControllerFindAllResponse> {
|
|
1462
1831
|
return __request(OpenAPI, {
|
|
1463
|
-
method: '
|
|
1464
|
-
url: '/api/v1/
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1832
|
+
method: 'GET',
|
|
1833
|
+
url: '/api/v1/admin/payee-profiles',
|
|
1834
|
+
query: {
|
|
1835
|
+
search: data.search,
|
|
1836
|
+
category: data.category,
|
|
1837
|
+
country: data.country,
|
|
1838
|
+
isActive: data.isActive,
|
|
1839
|
+
verified: data.verified,
|
|
1840
|
+
dataSource: data.dataSource
|
|
1468
1841
|
},
|
|
1469
1842
|
errors: {
|
|
1470
|
-
|
|
1843
|
+
403: 'Admin access required'
|
|
1471
1844
|
}
|
|
1472
1845
|
});
|
|
1473
1846
|
}
|
|
1474
1847
|
|
|
1475
1848
|
/**
|
|
1476
|
-
*
|
|
1477
|
-
*
|
|
1849
|
+
* Get payee profile by ID (Admin only)
|
|
1850
|
+
* Returns a single payee profile by its ID.
|
|
1478
1851
|
* @param data The data for the request.
|
|
1479
|
-
* @param data.
|
|
1480
|
-
* @
|
|
1481
|
-
* @returns CommodityResponseDto Commodity retrieved or created
|
|
1852
|
+
* @param data.id Payee profile ID (UUID)
|
|
1853
|
+
* @returns PayeeProfileResponseDto Payee profile retrieved successfully
|
|
1482
1854
|
* @throws ApiError
|
|
1483
1855
|
*/
|
|
1484
|
-
public static
|
|
1485
|
-
data:
|
|
1486
|
-
): CancelablePromise<
|
|
1856
|
+
public static payeeProfileAdminControllerFindOne(
|
|
1857
|
+
data: PayeeProfileAdminControllerFindOneData
|
|
1858
|
+
): CancelablePromise<PayeeProfileAdminControllerFindOneResponse> {
|
|
1487
1859
|
return __request(OpenAPI, {
|
|
1488
|
-
method: '
|
|
1489
|
-
url: '/api/v1/
|
|
1860
|
+
method: 'GET',
|
|
1861
|
+
url: '/api/v1/admin/payee-profiles/{id}',
|
|
1490
1862
|
path: {
|
|
1491
|
-
|
|
1492
|
-
|
|
1863
|
+
id: data.id
|
|
1864
|
+
},
|
|
1865
|
+
errors: {
|
|
1866
|
+
403: 'Admin access required',
|
|
1867
|
+
404: 'Payee profile not found'
|
|
1493
1868
|
}
|
|
1494
1869
|
});
|
|
1495
1870
|
}
|
|
1496
1871
|
|
|
1497
1872
|
/**
|
|
1498
|
-
*
|
|
1499
|
-
*
|
|
1873
|
+
* Update payee profile (Admin only)
|
|
1874
|
+
* Updates an existing payee profile. The canonical name cannot be changed.
|
|
1500
1875
|
* @param data The data for the request.
|
|
1501
|
-
* @param data.
|
|
1502
|
-
* @
|
|
1876
|
+
* @param data.id Payee profile ID (UUID)
|
|
1877
|
+
* @param data.requestBody
|
|
1878
|
+
* @returns PayeeProfileResponseDto Payee profile updated successfully
|
|
1503
1879
|
* @throws ApiError
|
|
1504
1880
|
*/
|
|
1505
|
-
public static
|
|
1506
|
-
data:
|
|
1507
|
-
): CancelablePromise<
|
|
1881
|
+
public static payeeProfileAdminControllerUpdate(
|
|
1882
|
+
data: PayeeProfileAdminControllerUpdateData
|
|
1883
|
+
): CancelablePromise<PayeeProfileAdminControllerUpdateResponse> {
|
|
1508
1884
|
return __request(OpenAPI, {
|
|
1509
|
-
method: '
|
|
1510
|
-
url: '/api/v1/{
|
|
1885
|
+
method: 'PUT',
|
|
1886
|
+
url: '/api/v1/admin/payee-profiles/{id}',
|
|
1511
1887
|
path: {
|
|
1512
|
-
|
|
1888
|
+
id: data.id
|
|
1889
|
+
},
|
|
1890
|
+
body: data.requestBody,
|
|
1891
|
+
mediaType: 'application/json',
|
|
1892
|
+
errors: {
|
|
1893
|
+
403: 'Admin access required',
|
|
1894
|
+
404: 'Payee profile not found'
|
|
1513
1895
|
}
|
|
1514
1896
|
});
|
|
1515
1897
|
}
|
|
1516
|
-
}
|
|
1517
1898
|
|
|
1518
|
-
export class RecurringRulesService {
|
|
1519
1899
|
/**
|
|
1520
|
-
*
|
|
1521
|
-
*
|
|
1900
|
+
* Soft delete payee profile (Admin only)
|
|
1901
|
+
* Marks a payee profile as inactive (soft delete). The profile cannot be deleted if it is referenced by user payees.
|
|
1522
1902
|
* @param data The data for the request.
|
|
1523
|
-
* @param data.
|
|
1524
|
-
* @
|
|
1525
|
-
* @returns RecurringRuleResponseDto Rule created successfully
|
|
1903
|
+
* @param data.id Payee profile ID (UUID)
|
|
1904
|
+
* @returns void Payee profile deleted successfully
|
|
1526
1905
|
* @throws ApiError
|
|
1527
1906
|
*/
|
|
1528
|
-
public static
|
|
1529
|
-
data:
|
|
1530
|
-
): CancelablePromise<
|
|
1907
|
+
public static payeeProfileAdminControllerDelete(
|
|
1908
|
+
data: PayeeProfileAdminControllerDeleteData
|
|
1909
|
+
): CancelablePromise<PayeeProfileAdminControllerDeleteResponse> {
|
|
1531
1910
|
return __request(OpenAPI, {
|
|
1532
|
-
method: '
|
|
1533
|
-
url: '/api/v1/{
|
|
1911
|
+
method: 'DELETE',
|
|
1912
|
+
url: '/api/v1/admin/payee-profiles/{id}',
|
|
1534
1913
|
path: {
|
|
1535
|
-
|
|
1914
|
+
id: data.id
|
|
1536
1915
|
},
|
|
1537
|
-
body: data.requestBody,
|
|
1538
|
-
mediaType: 'application/json',
|
|
1539
1916
|
errors: {
|
|
1540
|
-
|
|
1541
|
-
|
|
1917
|
+
403: 'Admin access required',
|
|
1918
|
+
404: 'Payee profile not found',
|
|
1919
|
+
409: 'Payee profile is in use and cannot be deleted'
|
|
1542
1920
|
}
|
|
1543
1921
|
});
|
|
1544
1922
|
}
|
|
1545
1923
|
|
|
1546
1924
|
/**
|
|
1547
|
-
*
|
|
1548
|
-
*
|
|
1925
|
+
* Verify payee profile (Admin only)
|
|
1926
|
+
* Marks a payee profile as verified by setting verifiedAt to current timestamp.
|
|
1549
1927
|
* @param data The data for the request.
|
|
1550
|
-
* @param data.
|
|
1551
|
-
* @
|
|
1552
|
-
* @param data.frequency Filter by frequency (WEEKLY, MONTHLY, etc.)
|
|
1553
|
-
* @param data.hasAutoCreate Filter by autoCreate enabled
|
|
1554
|
-
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
1928
|
+
* @param data.id Payee profile ID (UUID)
|
|
1929
|
+
* @returns PayeeProfileResponseDto Payee profile verified successfully
|
|
1555
1930
|
* @throws ApiError
|
|
1556
1931
|
*/
|
|
1557
|
-
public static
|
|
1558
|
-
data:
|
|
1559
|
-
): CancelablePromise<
|
|
1932
|
+
public static payeeProfileAdminControllerVerify(
|
|
1933
|
+
data: PayeeProfileAdminControllerVerifyData
|
|
1934
|
+
): CancelablePromise<PayeeProfileAdminControllerVerifyResponse> {
|
|
1560
1935
|
return __request(OpenAPI, {
|
|
1561
|
-
method: '
|
|
1562
|
-
url: '/api/v1/{
|
|
1936
|
+
method: 'POST',
|
|
1937
|
+
url: '/api/v1/admin/payee-profiles/{id}/verify',
|
|
1563
1938
|
path: {
|
|
1564
|
-
|
|
1939
|
+
id: data.id
|
|
1565
1940
|
},
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
hasAutoCreate: data.hasAutoCreate
|
|
1941
|
+
errors: {
|
|
1942
|
+
403: 'Admin access required',
|
|
1943
|
+
404: 'Payee profile not found'
|
|
1570
1944
|
}
|
|
1571
1945
|
});
|
|
1572
1946
|
}
|
|
1573
1947
|
|
|
1574
1948
|
/**
|
|
1575
|
-
*
|
|
1576
|
-
*
|
|
1949
|
+
* Unverify payee profile (Admin only)
|
|
1950
|
+
* Removes verification status by setting verifiedAt to null.
|
|
1577
1951
|
* @param data The data for the request.
|
|
1578
|
-
* @param data.
|
|
1579
|
-
* @
|
|
1580
|
-
* @param data.requestBody
|
|
1581
|
-
* @returns RecurringRuleResponseDto Rule created successfully
|
|
1952
|
+
* @param data.id Payee profile ID (UUID)
|
|
1953
|
+
* @returns void Payee profile unverified successfully
|
|
1582
1954
|
* @throws ApiError
|
|
1583
1955
|
*/
|
|
1584
|
-
public static
|
|
1585
|
-
data:
|
|
1586
|
-
): CancelablePromise<
|
|
1956
|
+
public static payeeProfileAdminControllerUnverify(
|
|
1957
|
+
data: PayeeProfileAdminControllerUnverifyData
|
|
1958
|
+
): CancelablePromise<PayeeProfileAdminControllerUnverifyResponse> {
|
|
1587
1959
|
return __request(OpenAPI, {
|
|
1588
|
-
method: '
|
|
1589
|
-
url: '/api/v1/
|
|
1960
|
+
method: 'DELETE',
|
|
1961
|
+
url: '/api/v1/admin/payee-profiles/{id}/verify',
|
|
1590
1962
|
path: {
|
|
1591
|
-
|
|
1592
|
-
region: data.region
|
|
1963
|
+
id: data.id
|
|
1593
1964
|
},
|
|
1594
|
-
body: data.requestBody,
|
|
1595
|
-
mediaType: 'application/json',
|
|
1596
1965
|
errors: {
|
|
1597
|
-
|
|
1598
|
-
|
|
1966
|
+
403: 'Admin access required',
|
|
1967
|
+
404: 'Payee profile not found'
|
|
1599
1968
|
}
|
|
1600
1969
|
});
|
|
1601
1970
|
}
|
|
1971
|
+
}
|
|
1602
1972
|
|
|
1973
|
+
export class PayeeProfilesService {
|
|
1603
1974
|
/**
|
|
1604
|
-
*
|
|
1605
|
-
* Returns a
|
|
1606
|
-
* @
|
|
1607
|
-
* @param data.id Rule ID
|
|
1608
|
-
* @param data.region Region code for tenant context
|
|
1609
|
-
* @returns RecurringRuleResponseDto Rule retrieved successfully
|
|
1975
|
+
* List active payee profiles (directory dump)
|
|
1976
|
+
* Returns the full active PayeeProfile set as a trimmed projection for client-side dictionary caching. Aliases are verbatim as stored; clients normalize on their side.
|
|
1977
|
+
* @returns PayeeProfileDirectoryResponseDto Active payee profiles
|
|
1610
1978
|
* @throws ApiError
|
|
1611
1979
|
*/
|
|
1612
|
-
public static
|
|
1613
|
-
data: RecurringRuleControllerFindOneData
|
|
1614
|
-
): CancelablePromise<RecurringRuleControllerFindOneResponse> {
|
|
1980
|
+
public static payeeProfileControllerListActive(): CancelablePromise<PayeeProfileControllerListActiveResponse> {
|
|
1615
1981
|
return __request(OpenAPI, {
|
|
1616
1982
|
method: 'GET',
|
|
1617
|
-
url: '/api/v1/
|
|
1618
|
-
path: {
|
|
1619
|
-
id: data.id,
|
|
1620
|
-
region: data.region
|
|
1621
|
-
},
|
|
1983
|
+
url: '/api/v1/bean/payee-profiles',
|
|
1622
1984
|
errors: {
|
|
1623
|
-
|
|
1985
|
+
401: 'Missing or invalid token'
|
|
1624
1986
|
}
|
|
1625
1987
|
});
|
|
1626
1988
|
}
|
|
1989
|
+
}
|
|
1627
1990
|
|
|
1991
|
+
export class BeanCommoditiesService {
|
|
1628
1992
|
/**
|
|
1629
|
-
*
|
|
1630
|
-
*
|
|
1993
|
+
* Create a new commodity
|
|
1994
|
+
* Creates a new commodity definition for the authenticated user
|
|
1631
1995
|
* @param data The data for the request.
|
|
1632
|
-
* @param data.id Rule ID
|
|
1633
1996
|
* @param data.region Region code for tenant context
|
|
1634
1997
|
* @param data.requestBody
|
|
1635
|
-
* @returns
|
|
1998
|
+
* @returns CommodityResponseDto Commodity created successfully
|
|
1636
1999
|
* @throws ApiError
|
|
1637
2000
|
*/
|
|
1638
|
-
public static
|
|
1639
|
-
data:
|
|
1640
|
-
): CancelablePromise<
|
|
2001
|
+
public static commodityControllerCreate(
|
|
2002
|
+
data: CommodityControllerCreateData
|
|
2003
|
+
): CancelablePromise<CommodityControllerCreateResponse> {
|
|
1641
2004
|
return __request(OpenAPI, {
|
|
1642
|
-
method: '
|
|
1643
|
-
url: '/api/v1/{region}/bean/
|
|
2005
|
+
method: 'POST',
|
|
2006
|
+
url: '/api/v1/{region}/bean/commodities',
|
|
1644
2007
|
path: {
|
|
1645
|
-
id: data.id,
|
|
1646
2008
|
region: data.region
|
|
1647
2009
|
},
|
|
1648
2010
|
body: data.requestBody,
|
|
1649
2011
|
mediaType: 'application/json',
|
|
1650
2012
|
errors: {
|
|
1651
2013
|
400: 'Invalid input data',
|
|
1652
|
-
|
|
2014
|
+
409: 'Commodity already exists'
|
|
1653
2015
|
}
|
|
1654
2016
|
});
|
|
1655
2017
|
}
|
|
1656
2018
|
|
|
1657
2019
|
/**
|
|
1658
|
-
*
|
|
1659
|
-
*
|
|
2020
|
+
* List user commodities
|
|
2021
|
+
* Returns all commodity definitions for the authenticated user with optional filtering
|
|
1660
2022
|
* @param data The data for the request.
|
|
1661
|
-
* @param data.id Rule ID
|
|
1662
2023
|
* @param data.region Region code for tenant context
|
|
1663
|
-
* @
|
|
2024
|
+
* @param data.search Search term for symbol or metadata fields (partial match). Searches symbol and metadata.name.
|
|
2025
|
+
* @param data.symbol Filter by exact symbol match
|
|
2026
|
+
* @returns CommodityListResponseDto Commodities retrieved successfully
|
|
1664
2027
|
* @throws ApiError
|
|
1665
2028
|
*/
|
|
1666
|
-
public static
|
|
1667
|
-
data:
|
|
1668
|
-
): CancelablePromise<
|
|
2029
|
+
public static commodityControllerFindAll(
|
|
2030
|
+
data: CommodityControllerFindAllData
|
|
2031
|
+
): CancelablePromise<CommodityControllerFindAllResponse> {
|
|
1669
2032
|
return __request(OpenAPI, {
|
|
1670
|
-
method: '
|
|
1671
|
-
url: '/api/v1/{region}/bean/
|
|
2033
|
+
method: 'GET',
|
|
2034
|
+
url: '/api/v1/{region}/bean/commodities',
|
|
1672
2035
|
path: {
|
|
1673
|
-
id: data.id,
|
|
1674
2036
|
region: data.region
|
|
1675
2037
|
},
|
|
1676
|
-
|
|
1677
|
-
|
|
2038
|
+
query: {
|
|
2039
|
+
search: data.search,
|
|
2040
|
+
symbol: data.symbol
|
|
1678
2041
|
}
|
|
1679
2042
|
});
|
|
1680
2043
|
}
|
|
1681
2044
|
|
|
1682
2045
|
/**
|
|
1683
|
-
* Get
|
|
1684
|
-
* Returns a
|
|
2046
|
+
* Get commodity by symbol
|
|
2047
|
+
* Returns a specific commodity definition by its symbol
|
|
1685
2048
|
* @param data The data for the request.
|
|
1686
|
-
* @param data.
|
|
2049
|
+
* @param data.symbol Commodity symbol
|
|
1687
2050
|
* @param data.region Region code for tenant context
|
|
1688
|
-
* @returns
|
|
2051
|
+
* @returns CommodityResponseDto Commodity retrieved successfully
|
|
1689
2052
|
* @throws ApiError
|
|
1690
2053
|
*/
|
|
1691
|
-
public static
|
|
1692
|
-
data:
|
|
1693
|
-
): CancelablePromise<
|
|
2054
|
+
public static commodityControllerFindOne(
|
|
2055
|
+
data: CommodityControllerFindOneData
|
|
2056
|
+
): CancelablePromise<CommodityControllerFindOneResponse> {
|
|
1694
2057
|
return __request(OpenAPI, {
|
|
1695
2058
|
method: 'GET',
|
|
1696
|
-
url: '/api/v1/{region}/bean/
|
|
2059
|
+
url: '/api/v1/{region}/bean/commodities/{symbol}',
|
|
1697
2060
|
path: {
|
|
1698
|
-
|
|
2061
|
+
symbol: data.symbol,
|
|
1699
2062
|
region: data.region
|
|
1700
2063
|
},
|
|
1701
2064
|
errors: {
|
|
1702
|
-
404: '
|
|
2065
|
+
404: 'Commodity not found'
|
|
1703
2066
|
}
|
|
1704
2067
|
});
|
|
1705
2068
|
}
|
|
1706
|
-
}
|
|
1707
2069
|
|
|
1708
|
-
export class ExpectedTransactionsService {
|
|
1709
2070
|
/**
|
|
1710
|
-
*
|
|
1711
|
-
*
|
|
2071
|
+
* Update commodity
|
|
2072
|
+
* Updates an existing commodity definition. Symbol cannot be changed.
|
|
1712
2073
|
* @param data The data for the request.
|
|
2074
|
+
* @param data.symbol Commodity symbol
|
|
1713
2075
|
* @param data.region Region code for tenant context
|
|
1714
|
-
* @param data.
|
|
1715
|
-
* @
|
|
1716
|
-
* @param data.fromDate Filter by date range start (YYYY-MM-DD)
|
|
1717
|
-
* @param data.toDate Filter by date range end (YYYY-MM-DD)
|
|
1718
|
-
* @returns ExpectedTransactionListResponseDto Expected transactions retrieved successfully
|
|
2076
|
+
* @param data.requestBody
|
|
2077
|
+
* @returns CommodityResponseDto Commodity updated successfully
|
|
1719
2078
|
* @throws ApiError
|
|
1720
2079
|
*/
|
|
1721
|
-
public static
|
|
1722
|
-
data:
|
|
1723
|
-
): CancelablePromise<
|
|
2080
|
+
public static commodityControllerUpdate(
|
|
2081
|
+
data: CommodityControllerUpdateData
|
|
2082
|
+
): CancelablePromise<CommodityControllerUpdateResponse> {
|
|
1724
2083
|
return __request(OpenAPI, {
|
|
1725
|
-
method: '
|
|
1726
|
-
url: '/api/v1/{region}/bean/
|
|
2084
|
+
method: 'PUT',
|
|
2085
|
+
url: '/api/v1/{region}/bean/commodities/{symbol}',
|
|
1727
2086
|
path: {
|
|
2087
|
+
symbol: data.symbol,
|
|
1728
2088
|
region: data.region
|
|
1729
2089
|
},
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
2090
|
+
body: data.requestBody,
|
|
2091
|
+
mediaType: 'application/json',
|
|
2092
|
+
errors: {
|
|
2093
|
+
400: 'Invalid input data',
|
|
2094
|
+
404: 'Commodity not found'
|
|
1735
2095
|
}
|
|
1736
2096
|
});
|
|
1737
2097
|
}
|
|
1738
2098
|
|
|
1739
2099
|
/**
|
|
1740
|
-
*
|
|
1741
|
-
*
|
|
2100
|
+
* Delete commodity
|
|
2101
|
+
* Deletes a commodity definition
|
|
1742
2102
|
* @param data The data for the request.
|
|
2103
|
+
* @param data.symbol Commodity symbol
|
|
1743
2104
|
* @param data.region Region code for tenant context
|
|
1744
|
-
* @returns
|
|
2105
|
+
* @returns void Commodity deleted successfully
|
|
1745
2106
|
* @throws ApiError
|
|
1746
2107
|
*/
|
|
1747
|
-
public static
|
|
1748
|
-
data:
|
|
1749
|
-
): CancelablePromise<
|
|
2108
|
+
public static commodityControllerDelete(
|
|
2109
|
+
data: CommodityControllerDeleteData
|
|
2110
|
+
): CancelablePromise<CommodityControllerDeleteResponse> {
|
|
1750
2111
|
return __request(OpenAPI, {
|
|
1751
|
-
method: '
|
|
1752
|
-
url: '/api/v1/{region}/bean/
|
|
2112
|
+
method: 'DELETE',
|
|
2113
|
+
url: '/api/v1/{region}/bean/commodities/{symbol}',
|
|
1753
2114
|
path: {
|
|
2115
|
+
symbol: data.symbol,
|
|
1754
2116
|
region: data.region
|
|
2117
|
+
},
|
|
2118
|
+
errors: {
|
|
2119
|
+
404: 'Commodity not found'
|
|
1755
2120
|
}
|
|
1756
2121
|
});
|
|
1757
2122
|
}
|
|
1758
2123
|
|
|
1759
2124
|
/**
|
|
1760
|
-
*
|
|
1761
|
-
*
|
|
2125
|
+
* Ensure commodity exists
|
|
2126
|
+
* Gets existing commodity or creates it with automatic initialization from OpenBB
|
|
1762
2127
|
* @param data The data for the request.
|
|
1763
|
-
* @param data.
|
|
2128
|
+
* @param data.symbol Commodity symbol
|
|
1764
2129
|
* @param data.region Region code for tenant context
|
|
1765
|
-
* @returns
|
|
2130
|
+
* @returns CommodityResponseDto Commodity retrieved or created
|
|
1766
2131
|
* @throws ApiError
|
|
1767
2132
|
*/
|
|
1768
|
-
public static
|
|
1769
|
-
data:
|
|
1770
|
-
): CancelablePromise<
|
|
2133
|
+
public static commodityControllerGetOrCreate(
|
|
2134
|
+
data: CommodityControllerGetOrCreateData
|
|
2135
|
+
): CancelablePromise<CommodityControllerGetOrCreateResponse> {
|
|
1771
2136
|
return __request(OpenAPI, {
|
|
1772
|
-
method: '
|
|
1773
|
-
url: '/api/v1/{region}/bean/
|
|
2137
|
+
method: 'POST',
|
|
2138
|
+
url: '/api/v1/{region}/bean/commodities/{symbol}/ensure',
|
|
1774
2139
|
path: {
|
|
1775
|
-
|
|
2140
|
+
symbol: data.symbol,
|
|
1776
2141
|
region: data.region
|
|
1777
|
-
},
|
|
1778
|
-
errors: {
|
|
1779
|
-
404: 'Expected transaction not found'
|
|
1780
2142
|
}
|
|
1781
2143
|
});
|
|
1782
2144
|
}
|
|
1783
2145
|
|
|
1784
2146
|
/**
|
|
1785
|
-
*
|
|
1786
|
-
*
|
|
2147
|
+
* Bulk create commodities
|
|
2148
|
+
* Creates multiple commodities from a list of symbols, useful for initialization
|
|
1787
2149
|
* @param data The data for the request.
|
|
1788
|
-
* @param data.id Expected transaction ID
|
|
1789
2150
|
* @param data.region Region code for tenant context
|
|
1790
|
-
* @returns
|
|
2151
|
+
* @returns CommodityResponseDto Commodities created successfully
|
|
1791
2152
|
* @throws ApiError
|
|
1792
2153
|
*/
|
|
1793
|
-
public static
|
|
1794
|
-
data:
|
|
1795
|
-
): CancelablePromise<
|
|
2154
|
+
public static commodityControllerBulkCreate(
|
|
2155
|
+
data: CommodityControllerBulkCreateData
|
|
2156
|
+
): CancelablePromise<CommodityControllerBulkCreateResponse> {
|
|
1796
2157
|
return __request(OpenAPI, {
|
|
1797
2158
|
method: 'POST',
|
|
1798
|
-
url: '/api/v1/{region}/bean/
|
|
2159
|
+
url: '/api/v1/{region}/bean/commodities/bulk',
|
|
1799
2160
|
path: {
|
|
1800
|
-
id: data.id,
|
|
1801
2161
|
region: data.region
|
|
1802
|
-
},
|
|
1803
|
-
errors: {
|
|
1804
|
-
400: 'Cannot skip - not in PENDING status',
|
|
1805
|
-
404: 'Expected transaction not found'
|
|
1806
2162
|
}
|
|
1807
2163
|
});
|
|
1808
2164
|
}
|
|
2165
|
+
}
|
|
1809
2166
|
|
|
2167
|
+
export class ReportingService {
|
|
1810
2168
|
/**
|
|
1811
|
-
*
|
|
1812
|
-
*
|
|
2169
|
+
* Get portfolio value trends
|
|
2170
|
+
*
|
|
2171
|
+
* Returns time series data of portfolio net worth.
|
|
2172
|
+
*
|
|
2173
|
+
* **Multi-currency Support:**
|
|
2174
|
+
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
2175
|
+
* - `byCurrency` - Separate time series grouped by currency
|
|
2176
|
+
* - `warnings` - Exchange rate warnings if conversion failed
|
|
2177
|
+
*
|
|
2178
|
+
* **Parameters:**
|
|
2179
|
+
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
2180
|
+
* - `granularity`: Data granularity (day, week, month)
|
|
2181
|
+
*
|
|
1813
2182
|
* @param data The data for the request.
|
|
1814
|
-
* @param data.id Expected transaction ID
|
|
1815
2183
|
* @param data.region Region code for tenant context
|
|
1816
|
-
* @
|
|
2184
|
+
* @param data.period Time period
|
|
2185
|
+
* @param data.granularity Data granularity
|
|
2186
|
+
* @returns PortfolioTrendsResponseDto Trends retrieved successfully
|
|
1817
2187
|
* @throws ApiError
|
|
1818
2188
|
*/
|
|
1819
|
-
public static
|
|
1820
|
-
data:
|
|
1821
|
-
): CancelablePromise<
|
|
2189
|
+
public static reportingControllerGetPortfolioTrends(
|
|
2190
|
+
data: ReportingControllerGetPortfolioTrendsData
|
|
2191
|
+
): CancelablePromise<ReportingControllerGetPortfolioTrendsResponse> {
|
|
1822
2192
|
return __request(OpenAPI, {
|
|
1823
|
-
method: '
|
|
1824
|
-
url: '/api/v1/{region}/
|
|
2193
|
+
method: 'GET',
|
|
2194
|
+
url: '/api/v1/{region}/reporting/portfolio/trends',
|
|
1825
2195
|
path: {
|
|
1826
|
-
id: data.id,
|
|
1827
2196
|
region: data.region
|
|
1828
2197
|
},
|
|
2198
|
+
query: {
|
|
2199
|
+
period: data.period,
|
|
2200
|
+
granularity: data.granularity
|
|
2201
|
+
},
|
|
1829
2202
|
errors: {
|
|
1830
|
-
|
|
1831
|
-
404: 'Expected transaction not found'
|
|
2203
|
+
401: 'User not authenticated'
|
|
1832
2204
|
}
|
|
1833
2205
|
});
|
|
1834
2206
|
}
|
|
1835
2207
|
|
|
1836
2208
|
/**
|
|
1837
|
-
*
|
|
1838
|
-
*
|
|
2209
|
+
* Get cash-flow trends
|
|
2210
|
+
*
|
|
2211
|
+
* Monthly income / expense / netSavings over a fixed N-month window
|
|
2212
|
+
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
2213
|
+
*
|
|
2214
|
+
* **Parameters:**
|
|
2215
|
+
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
2216
|
+
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
2217
|
+
*
|
|
1839
2218
|
* @param data The data for the request.
|
|
1840
|
-
* @param data.id Expected transaction ID
|
|
1841
2219
|
* @param data.region Region code for tenant context
|
|
1842
|
-
* @param data.
|
|
1843
|
-
* @
|
|
2220
|
+
* @param data.period Time period
|
|
2221
|
+
* @param data.granularity Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
2222
|
+
* @returns CashFlowTrendsResponseDto Cash-flow trends retrieved successfully
|
|
1844
2223
|
* @throws ApiError
|
|
1845
2224
|
*/
|
|
1846
|
-
public static
|
|
1847
|
-
data:
|
|
1848
|
-
): CancelablePromise<
|
|
2225
|
+
public static reportingControllerGetCashFlowTrends(
|
|
2226
|
+
data: ReportingControllerGetCashFlowTrendsData
|
|
2227
|
+
): CancelablePromise<ReportingControllerGetCashFlowTrendsResponse> {
|
|
1849
2228
|
return __request(OpenAPI, {
|
|
1850
|
-
method: '
|
|
1851
|
-
url: '/api/v1/{region}/
|
|
2229
|
+
method: 'GET',
|
|
2230
|
+
url: '/api/v1/{region}/reporting/cash-flow/trends',
|
|
1852
2231
|
path: {
|
|
1853
|
-
id: data.id,
|
|
1854
2232
|
region: data.region
|
|
1855
2233
|
},
|
|
1856
|
-
|
|
1857
|
-
|
|
2234
|
+
query: {
|
|
2235
|
+
period: data.period,
|
|
2236
|
+
granularity: data.granularity
|
|
2237
|
+
},
|
|
1858
2238
|
errors: {
|
|
1859
|
-
|
|
1860
|
-
404: 'Expected or actual transaction not found',
|
|
1861
|
-
409: 'Actual transaction already matched to another rule'
|
|
2239
|
+
401: 'User not authenticated'
|
|
1862
2240
|
}
|
|
1863
2241
|
});
|
|
1864
2242
|
}
|
|
1865
2243
|
|
|
1866
2244
|
/**
|
|
1867
|
-
*
|
|
1868
|
-
*
|
|
2245
|
+
* Generate portfolio snapshot
|
|
2246
|
+
*
|
|
2247
|
+
* Manually generate a portfolio snapshot for a specific date.
|
|
2248
|
+
*
|
|
2249
|
+
* **Multi-currency Support:**
|
|
2250
|
+
* - Fetches balances grouped by currency
|
|
2251
|
+
* - Uses user's baseCurrency setting for conversion
|
|
2252
|
+
* - Stores exchange rates and warnings
|
|
2253
|
+
*
|
|
2254
|
+
* **Use Cases:**
|
|
2255
|
+
* - Testing snapshot generation
|
|
2256
|
+
* - Force regeneration after data correction
|
|
2257
|
+
* - Initial setup for new users
|
|
2258
|
+
*
|
|
1869
2259
|
* @param data The data for the request.
|
|
1870
|
-
* @param data.id Expected transaction ID
|
|
1871
2260
|
* @param data.region Region code for tenant context
|
|
1872
|
-
* @
|
|
2261
|
+
* @param data.requestBody Optional date (defaults to today)
|
|
2262
|
+
* @returns GenerateSnapshotResponse Snapshot generated successfully
|
|
1873
2263
|
* @throws ApiError
|
|
1874
2264
|
*/
|
|
1875
|
-
public static
|
|
1876
|
-
data:
|
|
1877
|
-
): CancelablePromise<
|
|
2265
|
+
public static reportingControllerGenerateSnapshot(
|
|
2266
|
+
data: ReportingControllerGenerateSnapshotData
|
|
2267
|
+
): CancelablePromise<ReportingControllerGenerateSnapshotResponse> {
|
|
1878
2268
|
return __request(OpenAPI, {
|
|
1879
|
-
method: '
|
|
1880
|
-
url: '/api/v1/{region}/
|
|
2269
|
+
method: 'POST',
|
|
2270
|
+
url: '/api/v1/{region}/reporting/snapshots/generate',
|
|
1881
2271
|
path: {
|
|
1882
|
-
id: data.id,
|
|
1883
2272
|
region: data.region
|
|
1884
2273
|
},
|
|
2274
|
+
body: data.requestBody,
|
|
2275
|
+
mediaType: 'application/json',
|
|
1885
2276
|
errors: {
|
|
1886
|
-
400: '
|
|
1887
|
-
|
|
2277
|
+
400: 'Invalid date format',
|
|
2278
|
+
401: 'User not authenticated'
|
|
1888
2279
|
}
|
|
1889
2280
|
});
|
|
1890
2281
|
}
|
|
1891
2282
|
|
|
1892
2283
|
/**
|
|
1893
|
-
*
|
|
1894
|
-
*
|
|
2284
|
+
* Backfill portfolio snapshots
|
|
2285
|
+
*
|
|
2286
|
+
* Generate snapshots for a date range (historical data backfill).
|
|
2287
|
+
*
|
|
2288
|
+
* **Multi-currency Support:**
|
|
2289
|
+
* - Each snapshot includes multi-currency data
|
|
2290
|
+
* - Uses exchange rates available at generation time
|
|
2291
|
+
* - Warnings stored for missing exchange rates
|
|
2292
|
+
*
|
|
2293
|
+
* **Best Practices:**
|
|
2294
|
+
* - Use for initial setup after account configuration
|
|
2295
|
+
* - Run during low-traffic periods for large date ranges
|
|
2296
|
+
* - Existing snapshots are skipped (not regenerated)
|
|
2297
|
+
*
|
|
1895
2298
|
* @param data The data for the request.
|
|
1896
|
-
* @param data.id Expected transaction ID
|
|
1897
2299
|
* @param data.region Region code for tenant context
|
|
1898
2300
|
* @param data.requestBody
|
|
1899
|
-
* @returns
|
|
2301
|
+
* @returns BackfillSnapshotsResponse Backfill completed successfully
|
|
1900
2302
|
* @throws ApiError
|
|
1901
2303
|
*/
|
|
1902
|
-
public static
|
|
1903
|
-
data:
|
|
1904
|
-
): CancelablePromise<
|
|
2304
|
+
public static reportingControllerBackfillSnapshots(
|
|
2305
|
+
data: ReportingControllerBackfillSnapshotsData
|
|
2306
|
+
): CancelablePromise<ReportingControllerBackfillSnapshotsResponse> {
|
|
1905
2307
|
return __request(OpenAPI, {
|
|
1906
2308
|
method: 'POST',
|
|
1907
|
-
url: '/api/v1/{region}/
|
|
2309
|
+
url: '/api/v1/{region}/reporting/snapshots/backfill',
|
|
1908
2310
|
path: {
|
|
1909
|
-
id: data.id,
|
|
1910
2311
|
region: data.region
|
|
1911
2312
|
},
|
|
1912
2313
|
body: data.requestBody,
|
|
1913
2314
|
mediaType: 'application/json',
|
|
1914
2315
|
errors: {
|
|
1915
|
-
400: '
|
|
1916
|
-
|
|
2316
|
+
400: 'Invalid date format or range',
|
|
2317
|
+
401: 'User not authenticated',
|
|
2318
|
+
409: 'Backfill already in progress for this user'
|
|
1917
2319
|
}
|
|
1918
2320
|
});
|
|
1919
2321
|
}
|
|
1920
2322
|
}
|
|
1921
2323
|
|
|
1922
|
-
export class
|
|
2324
|
+
export class BeanPricesService {
|
|
1923
2325
|
/**
|
|
1924
|
-
*
|
|
1925
|
-
*
|
|
2326
|
+
* Create a new price
|
|
2327
|
+
* Creates a new price entry for the authenticated user
|
|
1926
2328
|
* @param data The data for the request.
|
|
1927
2329
|
* @param data.region Region code for tenant context
|
|
1928
|
-
* @param data.
|
|
1929
|
-
* @returns
|
|
2330
|
+
* @param data.requestBody
|
|
2331
|
+
* @returns PriceResponseDto Price created successfully
|
|
1930
2332
|
* @throws ApiError
|
|
1931
2333
|
*/
|
|
1932
|
-
public static
|
|
1933
|
-
data:
|
|
1934
|
-
): CancelablePromise<
|
|
2334
|
+
public static priceControllerCreate(
|
|
2335
|
+
data: PriceControllerCreateData
|
|
2336
|
+
): CancelablePromise<PriceControllerCreateResponse> {
|
|
1935
2337
|
return __request(OpenAPI, {
|
|
1936
|
-
method: '
|
|
1937
|
-
url: '/api/v1/{region}/bean/
|
|
2338
|
+
method: 'POST',
|
|
2339
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1938
2340
|
path: {
|
|
1939
2341
|
region: data.region
|
|
1940
2342
|
},
|
|
1941
|
-
|
|
1942
|
-
|
|
2343
|
+
body: data.requestBody,
|
|
2344
|
+
mediaType: 'application/json',
|
|
2345
|
+
errors: {
|
|
2346
|
+
404: 'Currency or quoteCurrency commodity not found',
|
|
2347
|
+
409: 'Price already exists for this currency pair and date'
|
|
1943
2348
|
}
|
|
1944
2349
|
});
|
|
1945
2350
|
}
|
|
1946
|
-
}
|
|
1947
2351
|
|
|
1948
|
-
export class BeanTransactionRulesService {
|
|
1949
2352
|
/**
|
|
1950
|
-
*
|
|
1951
|
-
*
|
|
2353
|
+
* List user prices
|
|
2354
|
+
* Returns all price entries for the authenticated user with optional filtering
|
|
1952
2355
|
* @param data The data for the request.
|
|
1953
2356
|
* @param data.region Region code for tenant context
|
|
1954
|
-
* @param data.
|
|
1955
|
-
* @
|
|
2357
|
+
* @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
|
|
2358
|
+
* @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
2359
|
+
* @param data.dateFrom Filter prices from this date (ISO 8601 format)
|
|
2360
|
+
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
2361
|
+
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
2362
|
+
* @param data.page Page number for pagination (default: 1)
|
|
2363
|
+
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
2364
|
+
* @returns PriceListResponseDto Prices retrieved successfully
|
|
1956
2365
|
* @throws ApiError
|
|
1957
2366
|
*/
|
|
1958
|
-
public static
|
|
1959
|
-
data:
|
|
1960
|
-
): CancelablePromise<
|
|
2367
|
+
public static priceControllerFindAll(
|
|
2368
|
+
data: PriceControllerFindAllData
|
|
2369
|
+
): CancelablePromise<PriceControllerFindAllResponse> {
|
|
1961
2370
|
return __request(OpenAPI, {
|
|
1962
|
-
method: '
|
|
1963
|
-
url: '/api/v1/{region}/bean/
|
|
2371
|
+
method: 'GET',
|
|
2372
|
+
url: '/api/v1/{region}/bean/prices',
|
|
1964
2373
|
path: {
|
|
1965
2374
|
region: data.region
|
|
1966
2375
|
},
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
2376
|
+
query: {
|
|
2377
|
+
currency: data.currency,
|
|
2378
|
+
quoteCurrency: data.quoteCurrency,
|
|
2379
|
+
dateFrom: data.dateFrom,
|
|
2380
|
+
dateTo: data.dateTo,
|
|
2381
|
+
search: data.search,
|
|
2382
|
+
page: data.page,
|
|
2383
|
+
limit: data.limit
|
|
1973
2384
|
}
|
|
1974
2385
|
});
|
|
1975
2386
|
}
|
|
1976
2387
|
|
|
1977
2388
|
/**
|
|
1978
|
-
* Get
|
|
2389
|
+
* Get price by ID
|
|
2390
|
+
* Returns a single price entry by its ID
|
|
1979
2391
|
* @param data The data for the request.
|
|
2392
|
+
* @param data.id Price ID
|
|
1980
2393
|
* @param data.region Region code for tenant context
|
|
1981
|
-
* @
|
|
1982
|
-
* @param data.offset Pagination offset (default: 0)
|
|
1983
|
-
* @param data.enabled Filter by enabled status
|
|
1984
|
-
* @param data.learningSource Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
|
|
1985
|
-
* @param data.autoApplyEnabled Filter by auto-apply status
|
|
1986
|
-
* @returns TransactionRuleListResponseDto List of rules
|
|
2394
|
+
* @returns PriceResponseDto Price retrieved successfully
|
|
1987
2395
|
* @throws ApiError
|
|
1988
2396
|
*/
|
|
1989
|
-
public static
|
|
1990
|
-
data:
|
|
1991
|
-
): CancelablePromise<
|
|
2397
|
+
public static priceControllerFindOne(
|
|
2398
|
+
data: PriceControllerFindOneData
|
|
2399
|
+
): CancelablePromise<PriceControllerFindOneResponse> {
|
|
1992
2400
|
return __request(OpenAPI, {
|
|
1993
2401
|
method: 'GET',
|
|
1994
|
-
url: '/api/v1/{region}/bean/
|
|
2402
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
1995
2403
|
path: {
|
|
2404
|
+
id: data.id,
|
|
1996
2405
|
region: data.region
|
|
1997
2406
|
},
|
|
1998
|
-
query: {
|
|
1999
|
-
limit: data.limit,
|
|
2000
|
-
offset: data.offset,
|
|
2001
|
-
enabled: data.enabled,
|
|
2002
|
-
learningSource: data.learningSource,
|
|
2003
|
-
autoApplyEnabled: data.autoApplyEnabled
|
|
2004
|
-
},
|
|
2005
2407
|
errors: {
|
|
2006
|
-
|
|
2408
|
+
404: 'Price not found'
|
|
2007
2409
|
}
|
|
2008
2410
|
});
|
|
2009
2411
|
}
|
|
2010
2412
|
|
|
2011
2413
|
/**
|
|
2012
|
-
*
|
|
2414
|
+
* Update a price
|
|
2415
|
+
* Updates an existing price entry
|
|
2013
2416
|
* @param data The data for the request.
|
|
2417
|
+
* @param data.id Price ID
|
|
2014
2418
|
* @param data.region Region code for tenant context
|
|
2015
2419
|
* @param data.requestBody
|
|
2016
|
-
* @returns
|
|
2420
|
+
* @returns PriceResponseDto Price updated successfully
|
|
2017
2421
|
* @throws ApiError
|
|
2018
2422
|
*/
|
|
2019
|
-
public static
|
|
2020
|
-
data:
|
|
2021
|
-
): CancelablePromise<
|
|
2423
|
+
public static priceControllerUpdate(
|
|
2424
|
+
data: PriceControllerUpdateData
|
|
2425
|
+
): CancelablePromise<PriceControllerUpdateResponse> {
|
|
2022
2426
|
return __request(OpenAPI, {
|
|
2023
|
-
method: '
|
|
2024
|
-
url: '/api/v1/{region}/bean/
|
|
2427
|
+
method: 'PUT',
|
|
2428
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
2025
2429
|
path: {
|
|
2430
|
+
id: data.id,
|
|
2026
2431
|
region: data.region
|
|
2027
2432
|
},
|
|
2028
2433
|
body: data.requestBody,
|
|
2029
2434
|
mediaType: 'application/json',
|
|
2030
2435
|
errors: {
|
|
2031
|
-
|
|
2032
|
-
|
|
2436
|
+
404: 'Price not found',
|
|
2437
|
+
409: 'Updated price conflicts with existing price'
|
|
2033
2438
|
}
|
|
2034
2439
|
});
|
|
2035
2440
|
}
|
|
2036
2441
|
|
|
2037
2442
|
/**
|
|
2038
|
-
*
|
|
2443
|
+
* Delete a price
|
|
2444
|
+
* Deletes a price entry (hard delete)
|
|
2039
2445
|
* @param data The data for the request.
|
|
2446
|
+
* @param data.id Price ID
|
|
2040
2447
|
* @param data.region Region code for tenant context
|
|
2041
|
-
* @
|
|
2042
|
-
* @returns BulkCreateRulesResponseDto Bulk create completed
|
|
2448
|
+
* @returns void Price deleted successfully
|
|
2043
2449
|
* @throws ApiError
|
|
2044
2450
|
*/
|
|
2045
|
-
public static
|
|
2046
|
-
data:
|
|
2047
|
-
): CancelablePromise<
|
|
2451
|
+
public static priceControllerDelete(
|
|
2452
|
+
data: PriceControllerDeleteData
|
|
2453
|
+
): CancelablePromise<PriceControllerDeleteResponse> {
|
|
2048
2454
|
return __request(OpenAPI, {
|
|
2049
|
-
method: '
|
|
2050
|
-
url: '/api/v1/{region}/bean/
|
|
2455
|
+
method: 'DELETE',
|
|
2456
|
+
url: '/api/v1/{region}/bean/prices/{id}',
|
|
2051
2457
|
path: {
|
|
2458
|
+
id: data.id,
|
|
2052
2459
|
region: data.region
|
|
2053
2460
|
},
|
|
2054
|
-
body: data.requestBody,
|
|
2055
|
-
mediaType: 'application/json',
|
|
2056
2461
|
errors: {
|
|
2057
|
-
|
|
2058
|
-
401: 'Unauthorized'
|
|
2462
|
+
404: 'Price not found'
|
|
2059
2463
|
}
|
|
2060
2464
|
});
|
|
2061
2465
|
}
|
|
2062
2466
|
|
|
2063
2467
|
/**
|
|
2064
|
-
*
|
|
2468
|
+
* Bulk create prices
|
|
2469
|
+
* Creates multiple price entries at once (skips duplicates)
|
|
2065
2470
|
* @param data The data for the request.
|
|
2066
|
-
* @param data.format Export format (currently only JSON supported)
|
|
2067
2471
|
* @param data.region Region code for tenant context
|
|
2068
|
-
* @
|
|
2472
|
+
* @param data.requestBody
|
|
2473
|
+
* @returns PriceResponseDto Prices created successfully
|
|
2069
2474
|
* @throws ApiError
|
|
2070
2475
|
*/
|
|
2071
|
-
public static
|
|
2072
|
-
data:
|
|
2073
|
-
): CancelablePromise<
|
|
2476
|
+
public static priceControllerBulkCreate(
|
|
2477
|
+
data: PriceControllerBulkCreateData
|
|
2478
|
+
): CancelablePromise<PriceControllerBulkCreateResponse> {
|
|
2074
2479
|
return __request(OpenAPI, {
|
|
2075
|
-
method: '
|
|
2076
|
-
url: '/api/v1/{region}/bean/
|
|
2480
|
+
method: 'POST',
|
|
2481
|
+
url: '/api/v1/{region}/bean/prices/bulk',
|
|
2077
2482
|
path: {
|
|
2078
|
-
format: data.format,
|
|
2079
2483
|
region: data.region
|
|
2080
2484
|
},
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
401: 'Unauthorized'
|
|
2084
|
-
}
|
|
2485
|
+
body: data.requestBody,
|
|
2486
|
+
mediaType: 'application/json'
|
|
2085
2487
|
});
|
|
2086
2488
|
}
|
|
2489
|
+
}
|
|
2087
2490
|
|
|
2491
|
+
export class RecurringRulesService {
|
|
2088
2492
|
/**
|
|
2089
|
-
*
|
|
2493
|
+
* Create a new recurring rule
|
|
2494
|
+
* Creates a new recurring transaction rule for the authenticated user
|
|
2090
2495
|
* @param data The data for the request.
|
|
2091
|
-
* @param data.period Statistics time period
|
|
2092
2496
|
* @param data.region Region code for tenant context
|
|
2093
|
-
* @
|
|
2497
|
+
* @param data.requestBody
|
|
2498
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
2094
2499
|
* @throws ApiError
|
|
2095
2500
|
*/
|
|
2096
|
-
public static
|
|
2097
|
-
data:
|
|
2098
|
-
): CancelablePromise<
|
|
2501
|
+
public static recurringRuleControllerCreate(
|
|
2502
|
+
data: RecurringRuleControllerCreateData
|
|
2503
|
+
): CancelablePromise<RecurringRuleControllerCreateResponse> {
|
|
2099
2504
|
return __request(OpenAPI, {
|
|
2100
|
-
method: '
|
|
2101
|
-
url: '/api/v1/{region}/bean/
|
|
2505
|
+
method: 'POST',
|
|
2506
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
2102
2507
|
path: {
|
|
2103
|
-
period: data.period,
|
|
2104
2508
|
region: data.region
|
|
2105
2509
|
},
|
|
2510
|
+
body: data.requestBody,
|
|
2511
|
+
mediaType: 'application/json',
|
|
2106
2512
|
errors: {
|
|
2107
|
-
|
|
2513
|
+
400: 'Invalid input data (e.g., autoCreate without accounts)',
|
|
2514
|
+
409: 'Rule with same name already exists'
|
|
2108
2515
|
}
|
|
2109
2516
|
});
|
|
2110
2517
|
}
|
|
2111
2518
|
|
|
2112
2519
|
/**
|
|
2113
|
-
*
|
|
2520
|
+
* List recurring rules
|
|
2521
|
+
* Returns all recurring rules for the authenticated user with optional filtering
|
|
2114
2522
|
* @param data The data for the request.
|
|
2115
|
-
* @param data.ruleId Rule ID
|
|
2116
2523
|
* @param data.region Region code for tenant context
|
|
2117
|
-
* @
|
|
2524
|
+
* @param data.isActive Filter by active status
|
|
2525
|
+
* @param data.frequency Filter by frequency (WEEKLY, MONTHLY, etc.)
|
|
2526
|
+
* @param data.hasAutoCreate Filter by autoCreate enabled
|
|
2527
|
+
* @returns RecurringRuleResponseDto Rules retrieved successfully
|
|
2118
2528
|
* @throws ApiError
|
|
2119
2529
|
*/
|
|
2120
|
-
public static
|
|
2121
|
-
data:
|
|
2122
|
-
): CancelablePromise<
|
|
2530
|
+
public static recurringRuleControllerFindAll(
|
|
2531
|
+
data: RecurringRuleControllerFindAllData
|
|
2532
|
+
): CancelablePromise<RecurringRuleControllerFindAllResponse> {
|
|
2123
2533
|
return __request(OpenAPI, {
|
|
2124
2534
|
method: 'GET',
|
|
2125
|
-
url: '/api/v1/{region}/bean/
|
|
2535
|
+
url: '/api/v1/{region}/bean/recurring-rules',
|
|
2126
2536
|
path: {
|
|
2127
|
-
ruleId: data.ruleId,
|
|
2128
2537
|
region: data.region
|
|
2129
2538
|
},
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2539
|
+
query: {
|
|
2540
|
+
isActive: data.isActive,
|
|
2541
|
+
frequency: data.frequency,
|
|
2542
|
+
hasAutoCreate: data.hasAutoCreate
|
|
2134
2543
|
}
|
|
2135
2544
|
});
|
|
2136
2545
|
}
|
|
2137
2546
|
|
|
2138
2547
|
/**
|
|
2139
|
-
*
|
|
2548
|
+
* Create recurring rule from transaction
|
|
2549
|
+
* Auto-creates a recurring rule using transaction data. User only confirms frequency.
|
|
2140
2550
|
* @param data The data for the request.
|
|
2141
|
-
* @param data.
|
|
2551
|
+
* @param data.transactionId Source transaction ID
|
|
2142
2552
|
* @param data.region Region code for tenant context
|
|
2143
2553
|
* @param data.requestBody
|
|
2144
|
-
* @returns
|
|
2554
|
+
* @returns RecurringRuleResponseDto Rule created successfully
|
|
2145
2555
|
* @throws ApiError
|
|
2146
2556
|
*/
|
|
2147
|
-
public static
|
|
2148
|
-
data:
|
|
2149
|
-
): CancelablePromise<
|
|
2557
|
+
public static recurringRuleControllerCreateFromTransaction(
|
|
2558
|
+
data: RecurringRuleControllerCreateFromTransactionData
|
|
2559
|
+
): CancelablePromise<RecurringRuleControllerCreateFromTransactionResponse> {
|
|
2150
2560
|
return __request(OpenAPI, {
|
|
2151
|
-
method: '
|
|
2152
|
-
url: '/api/v1/{region}/bean/
|
|
2561
|
+
method: 'POST',
|
|
2562
|
+
url: '/api/v1/{region}/bean/recurring-rules/from-transaction/{transactionId}',
|
|
2153
2563
|
path: {
|
|
2154
|
-
|
|
2564
|
+
transactionId: data.transactionId,
|
|
2155
2565
|
region: data.region
|
|
2156
2566
|
},
|
|
2157
2567
|
body: data.requestBody,
|
|
2158
2568
|
mediaType: 'application/json',
|
|
2159
2569
|
errors: {
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
403: 'Forbidden - not owner of rule',
|
|
2163
|
-
404: 'Rule not found',
|
|
2164
|
-
409: 'Resource conflict - rule is being modified by another process'
|
|
2570
|
+
404: 'Transaction not found',
|
|
2571
|
+
409: 'Rule with same name already exists or transaction already linked'
|
|
2165
2572
|
}
|
|
2166
2573
|
});
|
|
2167
2574
|
}
|
|
2168
2575
|
|
|
2169
2576
|
/**
|
|
2170
|
-
*
|
|
2577
|
+
* Get recurring rule by ID
|
|
2578
|
+
* Returns a specific recurring rule with its details
|
|
2171
2579
|
* @param data The data for the request.
|
|
2172
|
-
* @param data.
|
|
2580
|
+
* @param data.id Rule ID
|
|
2173
2581
|
* @param data.region Region code for tenant context
|
|
2174
|
-
* @returns
|
|
2582
|
+
* @returns RecurringRuleResponseDto Rule retrieved successfully
|
|
2175
2583
|
* @throws ApiError
|
|
2176
2584
|
*/
|
|
2177
|
-
public static
|
|
2178
|
-
data:
|
|
2179
|
-
): CancelablePromise<
|
|
2585
|
+
public static recurringRuleControllerFindOne(
|
|
2586
|
+
data: RecurringRuleControllerFindOneData
|
|
2587
|
+
): CancelablePromise<RecurringRuleControllerFindOneResponse> {
|
|
2180
2588
|
return __request(OpenAPI, {
|
|
2181
|
-
method: '
|
|
2182
|
-
url: '/api/v1/{region}/bean/
|
|
2589
|
+
method: 'GET',
|
|
2590
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}',
|
|
2183
2591
|
path: {
|
|
2184
|
-
|
|
2592
|
+
id: data.id,
|
|
2185
2593
|
region: data.region
|
|
2186
2594
|
},
|
|
2187
2595
|
errors: {
|
|
2188
|
-
|
|
2189
|
-
403: 'Forbidden - not owner of rule',
|
|
2190
|
-
404: 'Rule not found',
|
|
2191
|
-
409: 'Resource conflict - rule is being modified by another process'
|
|
2596
|
+
404: 'Rule not found'
|
|
2192
2597
|
}
|
|
2193
2598
|
});
|
|
2194
2599
|
}
|
|
2195
2600
|
|
|
2196
2601
|
/**
|
|
2197
|
-
*
|
|
2602
|
+
* Update recurring rule
|
|
2603
|
+
* Updates an existing recurring rule
|
|
2198
2604
|
* @param data The data for the request.
|
|
2199
|
-
* @param data.
|
|
2605
|
+
* @param data.id Rule ID
|
|
2200
2606
|
* @param data.region Region code for tenant context
|
|
2201
2607
|
* @param data.requestBody
|
|
2202
|
-
* @returns
|
|
2608
|
+
* @returns RecurringRuleResponseDto Rule updated successfully
|
|
2203
2609
|
* @throws ApiError
|
|
2204
2610
|
*/
|
|
2205
|
-
public static
|
|
2206
|
-
data:
|
|
2207
|
-
): CancelablePromise<
|
|
2611
|
+
public static recurringRuleControllerUpdate(
|
|
2612
|
+
data: RecurringRuleControllerUpdateData
|
|
2613
|
+
): CancelablePromise<RecurringRuleControllerUpdateResponse> {
|
|
2208
2614
|
return __request(OpenAPI, {
|
|
2209
|
-
method: '
|
|
2210
|
-
url: '/api/v1/{region}/bean/
|
|
2615
|
+
method: 'PATCH',
|
|
2616
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}',
|
|
2211
2617
|
path: {
|
|
2212
|
-
|
|
2618
|
+
id: data.id,
|
|
2213
2619
|
region: data.region
|
|
2214
2620
|
},
|
|
2215
2621
|
body: data.requestBody,
|
|
2216
2622
|
mediaType: 'application/json',
|
|
2217
2623
|
errors: {
|
|
2218
|
-
|
|
2219
|
-
403: 'Forbidden - not owner of rule',
|
|
2624
|
+
400: 'Invalid input data',
|
|
2220
2625
|
404: 'Rule not found'
|
|
2221
2626
|
}
|
|
2222
2627
|
});
|
|
2223
2628
|
}
|
|
2224
|
-
}
|
|
2225
2629
|
|
|
2226
|
-
export class UsersService {
|
|
2227
2630
|
/**
|
|
2228
|
-
* Delete
|
|
2631
|
+
* Delete recurring rule
|
|
2632
|
+
* Soft deletes a recurring rule (sets isActive to false)
|
|
2229
2633
|
* @param data The data for the request.
|
|
2230
|
-
* @param data.
|
|
2231
|
-
* @
|
|
2634
|
+
* @param data.id Rule ID
|
|
2635
|
+
* @param data.region Region code for tenant context
|
|
2636
|
+
* @returns void Rule deleted successfully
|
|
2232
2637
|
* @throws ApiError
|
|
2233
2638
|
*/
|
|
2234
|
-
public static
|
|
2235
|
-
data:
|
|
2236
|
-
): CancelablePromise<
|
|
2639
|
+
public static recurringRuleControllerDelete(
|
|
2640
|
+
data: RecurringRuleControllerDeleteData
|
|
2641
|
+
): CancelablePromise<RecurringRuleControllerDeleteResponse> {
|
|
2237
2642
|
return __request(OpenAPI, {
|
|
2238
2643
|
method: 'DELETE',
|
|
2239
|
-
url: '/api/v1/
|
|
2240
|
-
|
|
2241
|
-
|
|
2644
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}',
|
|
2645
|
+
path: {
|
|
2646
|
+
id: data.id,
|
|
2647
|
+
region: data.region
|
|
2648
|
+
},
|
|
2242
2649
|
errors: {
|
|
2243
|
-
|
|
2650
|
+
404: 'Rule not found'
|
|
2244
2651
|
}
|
|
2245
2652
|
});
|
|
2246
2653
|
}
|
|
2247
2654
|
|
|
2248
2655
|
/**
|
|
2249
|
-
* Get
|
|
2656
|
+
* Get rule with statistics
|
|
2657
|
+
* Returns a rule with pending/overdue counts and next expected date
|
|
2250
2658
|
* @param data The data for the request.
|
|
2251
|
-
* @param data.
|
|
2252
|
-
* @
|
|
2659
|
+
* @param data.id Rule ID
|
|
2660
|
+
* @param data.region Region code for tenant context
|
|
2661
|
+
* @returns RecurringRuleWithStatsResponseDto Rule with stats retrieved successfully
|
|
2253
2662
|
* @throws ApiError
|
|
2254
2663
|
*/
|
|
2255
|
-
public static
|
|
2256
|
-
data:
|
|
2257
|
-
): CancelablePromise<
|
|
2664
|
+
public static recurringRuleControllerGetWithStats(
|
|
2665
|
+
data: RecurringRuleControllerGetWithStatsData
|
|
2666
|
+
): CancelablePromise<RecurringRuleControllerGetWithStatsResponse> {
|
|
2258
2667
|
return __request(OpenAPI, {
|
|
2259
2668
|
method: 'GET',
|
|
2260
|
-
url: '/api/v1/
|
|
2261
|
-
|
|
2262
|
-
|
|
2669
|
+
url: '/api/v1/{region}/bean/recurring-rules/{id}/stats',
|
|
2670
|
+
path: {
|
|
2671
|
+
id: data.id,
|
|
2672
|
+
region: data.region
|
|
2673
|
+
},
|
|
2674
|
+
errors: {
|
|
2675
|
+
404: 'Rule not found'
|
|
2263
2676
|
}
|
|
2264
2677
|
});
|
|
2265
2678
|
}
|
|
2679
|
+
}
|
|
2266
2680
|
|
|
2681
|
+
export class ExpectedTransactionsService {
|
|
2267
2682
|
/**
|
|
2268
|
-
*
|
|
2269
|
-
*
|
|
2683
|
+
* List expected transactions
|
|
2684
|
+
* Returns expected transactions for the authenticated user with optional filtering
|
|
2270
2685
|
* @param data The data for the request.
|
|
2271
|
-
* @param data.
|
|
2272
|
-
* @
|
|
2686
|
+
* @param data.region Region code for tenant context
|
|
2687
|
+
* @param data.ruleId Filter by recurring rule ID
|
|
2688
|
+
* @param data.status Filter by status (PENDING, COMPLETED, SKIPPED)
|
|
2689
|
+
* @param data.fromDate Filter by date range start (YYYY-MM-DD)
|
|
2690
|
+
* @param data.toDate Filter by date range end (YYYY-MM-DD)
|
|
2691
|
+
* @returns ExpectedTransactionListResponseDto Expected transactions retrieved successfully
|
|
2273
2692
|
* @throws ApiError
|
|
2274
2693
|
*/
|
|
2275
|
-
public static
|
|
2276
|
-
data:
|
|
2277
|
-
): CancelablePromise<
|
|
2694
|
+
public static expectedTransactionControllerFindAll(
|
|
2695
|
+
data: ExpectedTransactionControllerFindAllData
|
|
2696
|
+
): CancelablePromise<ExpectedTransactionControllerFindAllResponse> {
|
|
2278
2697
|
return __request(OpenAPI, {
|
|
2279
|
-
method: '
|
|
2280
|
-
url: '/api/v1/
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2698
|
+
method: 'GET',
|
|
2699
|
+
url: '/api/v1/{region}/bean/expected-transactions',
|
|
2700
|
+
path: {
|
|
2701
|
+
region: data.region
|
|
2702
|
+
},
|
|
2703
|
+
query: {
|
|
2704
|
+
ruleId: data.ruleId,
|
|
2705
|
+
status: data.status,
|
|
2706
|
+
fromDate: data.fromDate,
|
|
2707
|
+
toDate: data.toDate
|
|
2286
2708
|
}
|
|
2287
2709
|
});
|
|
2288
2710
|
}
|
|
2289
2711
|
|
|
2290
2712
|
/**
|
|
2291
|
-
*
|
|
2713
|
+
* List overdue expected transactions
|
|
2714
|
+
* Returns all overdue expected transactions (PENDING past tolerance)
|
|
2292
2715
|
* @param data The data for the request.
|
|
2293
|
-
* @param data.
|
|
2294
|
-
* @returns
|
|
2716
|
+
* @param data.region Region code for tenant context
|
|
2717
|
+
* @returns ExpectedTransactionListResponseDto Overdue transactions retrieved successfully
|
|
2295
2718
|
* @throws ApiError
|
|
2296
2719
|
*/
|
|
2297
|
-
public static
|
|
2298
|
-
data:
|
|
2299
|
-
): CancelablePromise<
|
|
2720
|
+
public static expectedTransactionControllerFindOverdue(
|
|
2721
|
+
data: ExpectedTransactionControllerFindOverdueData
|
|
2722
|
+
): CancelablePromise<ExpectedTransactionControllerFindOverdueResponse> {
|
|
2300
2723
|
return __request(OpenAPI, {
|
|
2301
|
-
method: '
|
|
2302
|
-
url: '/api/v1/
|
|
2724
|
+
method: 'GET',
|
|
2725
|
+
url: '/api/v1/{region}/bean/expected-transactions/overdue',
|
|
2303
2726
|
path: {
|
|
2304
|
-
|
|
2305
|
-
},
|
|
2306
|
-
errors: {
|
|
2307
|
-
403: 'Cannot delete own account or insufficient permissions'
|
|
2727
|
+
region: data.region
|
|
2308
2728
|
}
|
|
2309
2729
|
});
|
|
2310
2730
|
}
|
|
2311
2731
|
|
|
2312
2732
|
/**
|
|
2313
|
-
* Get
|
|
2733
|
+
* Get expected transaction by ID
|
|
2734
|
+
* Returns a specific expected transaction with rule details
|
|
2314
2735
|
* @param data The data for the request.
|
|
2315
|
-
* @param data.id
|
|
2316
|
-
* @
|
|
2736
|
+
* @param data.id Expected transaction ID
|
|
2737
|
+
* @param data.region Region code for tenant context
|
|
2738
|
+
* @returns ExpectedTransactionResponseDto Expected transaction retrieved successfully
|
|
2317
2739
|
* @throws ApiError
|
|
2318
2740
|
*/
|
|
2319
|
-
public static
|
|
2320
|
-
data:
|
|
2321
|
-
): CancelablePromise<
|
|
2741
|
+
public static expectedTransactionControllerFindOne(
|
|
2742
|
+
data: ExpectedTransactionControllerFindOneData
|
|
2743
|
+
): CancelablePromise<ExpectedTransactionControllerFindOneResponse> {
|
|
2322
2744
|
return __request(OpenAPI, {
|
|
2323
2745
|
method: 'GET',
|
|
2324
|
-
url: '/api/v1/
|
|
2746
|
+
url: '/api/v1/{region}/bean/expected-transactions/{id}',
|
|
2325
2747
|
path: {
|
|
2326
|
-
id: data.id
|
|
2748
|
+
id: data.id,
|
|
2749
|
+
region: data.region
|
|
2327
2750
|
},
|
|
2328
2751
|
errors: {
|
|
2329
|
-
|
|
2752
|
+
404: 'Expected transaction not found'
|
|
2330
2753
|
}
|
|
2331
2754
|
});
|
|
2332
2755
|
}
|
|
2333
2756
|
|
|
2334
2757
|
/**
|
|
2335
|
-
*
|
|
2758
|
+
* Skip expected transaction
|
|
2759
|
+
* Marks an expected transaction as skipped (PENDING -> SKIPPED)
|
|
2336
2760
|
* @param data The data for the request.
|
|
2337
|
-
* @param data.
|
|
2338
|
-
* @
|
|
2761
|
+
* @param data.id Expected transaction ID
|
|
2762
|
+
* @param data.region Region code for tenant context
|
|
2763
|
+
* @returns ExpectedTransactionResponseDto Expected transaction skipped successfully
|
|
2339
2764
|
* @throws ApiError
|
|
2340
2765
|
*/
|
|
2341
|
-
public static
|
|
2342
|
-
data:
|
|
2343
|
-
): CancelablePromise<
|
|
2766
|
+
public static expectedTransactionControllerSkip(
|
|
2767
|
+
data: ExpectedTransactionControllerSkipData
|
|
2768
|
+
): CancelablePromise<ExpectedTransactionControllerSkipResponse> {
|
|
2344
2769
|
return __request(OpenAPI, {
|
|
2345
|
-
method: '
|
|
2346
|
-
url: '/api/v1/
|
|
2347
|
-
|
|
2348
|
-
|
|
2770
|
+
method: 'POST',
|
|
2771
|
+
url: '/api/v1/{region}/bean/expected-transactions/{id}/skip',
|
|
2772
|
+
path: {
|
|
2773
|
+
id: data.id,
|
|
2774
|
+
region: data.region
|
|
2775
|
+
},
|
|
2349
2776
|
errors: {
|
|
2350
|
-
|
|
2777
|
+
400: 'Cannot skip - not in PENDING status',
|
|
2778
|
+
404: 'Expected transaction not found'
|
|
2351
2779
|
}
|
|
2352
2780
|
});
|
|
2353
2781
|
}
|
|
2354
2782
|
|
|
2355
2783
|
/**
|
|
2356
|
-
*
|
|
2784
|
+
* Undo skip
|
|
2785
|
+
* Reverses a skip operation (SKIPPED -> PENDING)
|
|
2357
2786
|
* @param data The data for the request.
|
|
2358
|
-
* @param data.
|
|
2359
|
-
* @param data.
|
|
2360
|
-
* @returns
|
|
2361
|
-
* @throws ApiError
|
|
2362
|
-
*/
|
|
2363
|
-
public static userControllerGetAllUserSettingsByPage(
|
|
2364
|
-
data: UserControllerGetAllUserSettingsByPageData
|
|
2365
|
-
): CancelablePromise<UserControllerGetAllUserSettingsByPageResponse> {
|
|
2366
|
-
return __request(OpenAPI, {
|
|
2367
|
-
method: 'GET',
|
|
2368
|
-
url: '/api/v1/users/settings-by-page',
|
|
2369
|
-
query: {
|
|
2370
|
-
pageNo: data.pageNo,
|
|
2371
|
-
pageSize: data.pageSize
|
|
2372
|
-
}
|
|
2373
|
-
});
|
|
2374
|
-
}
|
|
2375
|
-
|
|
2376
|
-
/**
|
|
2377
|
-
* Get asset and liability summary for current user
|
|
2378
|
-
* @returns unknown Summary retrieved successfully
|
|
2787
|
+
* @param data.id Expected transaction ID
|
|
2788
|
+
* @param data.region Region code for tenant context
|
|
2789
|
+
* @returns void Skip undone successfully
|
|
2379
2790
|
* @throws ApiError
|
|
2380
2791
|
*/
|
|
2381
|
-
public static
|
|
2792
|
+
public static expectedTransactionControllerUndoSkip(
|
|
2793
|
+
data: ExpectedTransactionControllerUndoSkipData
|
|
2794
|
+
): CancelablePromise<ExpectedTransactionControllerUndoSkipResponse> {
|
|
2382
2795
|
return __request(OpenAPI, {
|
|
2383
|
-
method: '
|
|
2384
|
-
url: '/api/v1/
|
|
2796
|
+
method: 'DELETE',
|
|
2797
|
+
url: '/api/v1/{region}/bean/expected-transactions/{id}/skip',
|
|
2798
|
+
path: {
|
|
2799
|
+
id: data.id,
|
|
2800
|
+
region: data.region
|
|
2801
|
+
},
|
|
2802
|
+
errors: {
|
|
2803
|
+
400: 'Cannot undo - not in SKIPPED status',
|
|
2804
|
+
404: 'Expected transaction not found'
|
|
2805
|
+
}
|
|
2385
2806
|
});
|
|
2386
2807
|
}
|
|
2387
|
-
}
|
|
2388
2808
|
|
|
2389
|
-
export class PropertiesService {
|
|
2390
2809
|
/**
|
|
2391
|
-
*
|
|
2392
|
-
*
|
|
2810
|
+
* Confirm transaction match
|
|
2811
|
+
* Manually matches an expected transaction with an actual transaction
|
|
2812
|
+
* @param data The data for the request.
|
|
2813
|
+
* @param data.id Expected transaction ID
|
|
2814
|
+
* @param data.region Region code for tenant context
|
|
2815
|
+
* @param data.requestBody
|
|
2816
|
+
* @returns unknown Match confirmed successfully
|
|
2393
2817
|
* @throws ApiError
|
|
2394
2818
|
*/
|
|
2395
|
-
public static
|
|
2819
|
+
public static expectedTransactionControllerConfirmMatch(
|
|
2820
|
+
data: ExpectedTransactionControllerConfirmMatchData
|
|
2821
|
+
): CancelablePromise<ExpectedTransactionControllerConfirmMatchResponse> {
|
|
2396
2822
|
return __request(OpenAPI, {
|
|
2397
|
-
method: '
|
|
2398
|
-
url: '/api/v1/
|
|
2823
|
+
method: 'POST',
|
|
2824
|
+
url: '/api/v1/{region}/bean/expected-transactions/{id}/match',
|
|
2825
|
+
path: {
|
|
2826
|
+
id: data.id,
|
|
2827
|
+
region: data.region
|
|
2828
|
+
},
|
|
2829
|
+
body: data.requestBody,
|
|
2830
|
+
mediaType: 'application/json',
|
|
2399
2831
|
errors: {
|
|
2400
|
-
|
|
2401
|
-
|
|
2832
|
+
400: 'Cannot match - not in PENDING status',
|
|
2833
|
+
404: 'Expected or actual transaction not found',
|
|
2834
|
+
409: 'Actual transaction already matched to another rule'
|
|
2402
2835
|
}
|
|
2403
2836
|
});
|
|
2404
2837
|
}
|
|
2405
2838
|
|
|
2406
2839
|
/**
|
|
2407
|
-
*
|
|
2840
|
+
* Unmatch transaction
|
|
2841
|
+
* Removes the match between expected and actual transaction (COMPLETED -> PENDING)
|
|
2408
2842
|
* @param data The data for the request.
|
|
2409
|
-
* @param data.
|
|
2410
|
-
* @
|
|
2843
|
+
* @param data.id Expected transaction ID
|
|
2844
|
+
* @param data.region Region code for tenant context
|
|
2845
|
+
* @returns void Match removed successfully
|
|
2411
2846
|
* @throws ApiError
|
|
2412
2847
|
*/
|
|
2413
|
-
public static
|
|
2414
|
-
data:
|
|
2415
|
-
): CancelablePromise<
|
|
2848
|
+
public static expectedTransactionControllerUnmatch(
|
|
2849
|
+
data: ExpectedTransactionControllerUnmatchData
|
|
2850
|
+
): CancelablePromise<ExpectedTransactionControllerUnmatchResponse> {
|
|
2416
2851
|
return __request(OpenAPI, {
|
|
2417
|
-
method: '
|
|
2418
|
-
url: '/api/v1/
|
|
2852
|
+
method: 'DELETE',
|
|
2853
|
+
url: '/api/v1/{region}/bean/expected-transactions/{id}/match',
|
|
2419
2854
|
path: {
|
|
2420
|
-
|
|
2855
|
+
id: data.id,
|
|
2856
|
+
region: data.region
|
|
2421
2857
|
},
|
|
2422
2858
|
errors: {
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
404: 'Property not found'
|
|
2859
|
+
400: 'Cannot unmatch - not in COMPLETED status',
|
|
2860
|
+
404: 'Expected transaction not found'
|
|
2426
2861
|
}
|
|
2427
2862
|
});
|
|
2428
2863
|
}
|
|
2429
2864
|
|
|
2430
2865
|
/**
|
|
2431
|
-
*
|
|
2866
|
+
* Enter Now
|
|
2867
|
+
* Creates an actual transaction for an expected transaction (YNAB-style Enter Now)
|
|
2432
2868
|
* @param data The data for the request.
|
|
2433
|
-
* @param data.
|
|
2869
|
+
* @param data.id Expected transaction ID
|
|
2870
|
+
* @param data.region Region code for tenant context
|
|
2434
2871
|
* @param data.requestBody
|
|
2435
|
-
* @returns unknown
|
|
2872
|
+
* @returns unknown Transaction created successfully
|
|
2436
2873
|
* @throws ApiError
|
|
2437
2874
|
*/
|
|
2438
|
-
public static
|
|
2439
|
-
data:
|
|
2440
|
-
): CancelablePromise<
|
|
2875
|
+
public static expectedTransactionControllerEnterNow(
|
|
2876
|
+
data: ExpectedTransactionControllerEnterNowData
|
|
2877
|
+
): CancelablePromise<ExpectedTransactionControllerEnterNowResponse> {
|
|
2441
2878
|
return __request(OpenAPI, {
|
|
2442
|
-
method: '
|
|
2443
|
-
url: '/api/v1/
|
|
2879
|
+
method: 'POST',
|
|
2880
|
+
url: '/api/v1/{region}/bean/expected-transactions/{id}/enter',
|
|
2444
2881
|
path: {
|
|
2445
|
-
|
|
2882
|
+
id: data.id,
|
|
2883
|
+
region: data.region
|
|
2446
2884
|
},
|
|
2447
2885
|
body: data.requestBody,
|
|
2448
2886
|
mediaType: 'application/json',
|
|
2449
2887
|
errors: {
|
|
2450
|
-
|
|
2451
|
-
|
|
2888
|
+
400: 'Cannot enter - not in PENDING status or missing accounts',
|
|
2889
|
+
404: 'Expected transaction or accounts not found'
|
|
2452
2890
|
}
|
|
2453
2891
|
});
|
|
2454
2892
|
}
|
|
2893
|
+
}
|
|
2455
2894
|
|
|
2895
|
+
export class RecurringForecastService {
|
|
2456
2896
|
/**
|
|
2457
|
-
*
|
|
2897
|
+
* Get cash flow forecast
|
|
2898
|
+
* Returns predicted outflows for the next N months based on active recurring rules
|
|
2458
2899
|
* @param data The data for the request.
|
|
2459
|
-
* @param data.
|
|
2460
|
-
* @
|
|
2900
|
+
* @param data.region Region code for tenant context
|
|
2901
|
+
* @param data.months Number of months to forecast (1-12, default 3)
|
|
2902
|
+
* @returns ForecastResponseDto Forecast retrieved successfully
|
|
2461
2903
|
* @throws ApiError
|
|
2462
2904
|
*/
|
|
2463
|
-
public static
|
|
2464
|
-
data:
|
|
2465
|
-
): CancelablePromise<
|
|
2905
|
+
public static forecastControllerGetForecast(
|
|
2906
|
+
data: ForecastControllerGetForecastData
|
|
2907
|
+
): CancelablePromise<ForecastControllerGetForecastResponse> {
|
|
2466
2908
|
return __request(OpenAPI, {
|
|
2467
|
-
method: '
|
|
2468
|
-
url: '/api/v1/
|
|
2909
|
+
method: 'GET',
|
|
2910
|
+
url: '/api/v1/{region}/bean/recurring/forecast',
|
|
2469
2911
|
path: {
|
|
2470
|
-
|
|
2912
|
+
region: data.region
|
|
2471
2913
|
},
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2914
|
+
query: {
|
|
2915
|
+
months: data.months
|
|
2916
|
+
}
|
|
2917
|
+
});
|
|
2918
|
+
}
|
|
2919
|
+
}
|
|
2920
|
+
|
|
2921
|
+
export class BeanCategoryCatalogService {
|
|
2922
|
+
/**
|
|
2923
|
+
* List category catalog for a region
|
|
2924
|
+
* Returns the region-scoped category slugs (expense/income/investment/banking/transfer/payment) for the NLP result picker, each with the categoryAccount paths the region-enabled system rules map it to (#816). CN-exclusive payment instruments (huabei/baitiao) appear only under /cn.
|
|
2925
|
+
* @param data The data for the request.
|
|
2926
|
+
* @param data.region Region code for tenant context
|
|
2927
|
+
* @param data.scenario Filter by scenario
|
|
2928
|
+
* @param data.routeBearing Filter by routeBearing (entity-router route() consumes it)
|
|
2929
|
+
* @returns CategoryCatalogListResponseDto Category catalog retrieved successfully
|
|
2930
|
+
* @throws ApiError
|
|
2931
|
+
*/
|
|
2932
|
+
public static categoryCatalogControllerList(
|
|
2933
|
+
data: CategoryCatalogControllerListData
|
|
2934
|
+
): CancelablePromise<CategoryCatalogControllerListResponse> {
|
|
2935
|
+
return __request(OpenAPI, {
|
|
2936
|
+
method: 'GET',
|
|
2937
|
+
url: '/api/v1/{region}/bean/categories',
|
|
2938
|
+
path: {
|
|
2939
|
+
region: data.region
|
|
2940
|
+
},
|
|
2941
|
+
query: {
|
|
2942
|
+
scenario: data.scenario,
|
|
2943
|
+
routeBearing: data.routeBearing
|
|
2476
2944
|
}
|
|
2477
2945
|
});
|
|
2478
2946
|
}
|
|
@@ -2543,111 +3011,244 @@ export class LifeEventsService {
|
|
|
2543
3011
|
* Get life event by ID
|
|
2544
3012
|
* Returns a single life event by its ID. Returns ETag header.
|
|
2545
3013
|
* @param data The data for the request.
|
|
2546
|
-
* @param data.id Life event ID
|
|
2547
|
-
* @param data.region Region code for tenant context (decorative for life events)
|
|
2548
|
-
* @returns EventResponseDto Life event retrieved successfully
|
|
3014
|
+
* @param data.id Life event ID
|
|
3015
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
3016
|
+
* @returns EventResponseDto Life event retrieved successfully
|
|
3017
|
+
* @throws ApiError
|
|
3018
|
+
*/
|
|
3019
|
+
public static eventControllerFindOne(
|
|
3020
|
+
data: EventControllerFindOneData
|
|
3021
|
+
): CancelablePromise<EventControllerFindOneResponse> {
|
|
3022
|
+
return __request(OpenAPI, {
|
|
3023
|
+
method: 'GET',
|
|
3024
|
+
url: '/api/v1/{region}/bean/events/{id}',
|
|
3025
|
+
path: {
|
|
3026
|
+
id: data.id,
|
|
3027
|
+
region: data.region
|
|
3028
|
+
},
|
|
3029
|
+
errors: {
|
|
3030
|
+
404: 'Life event not found'
|
|
3031
|
+
}
|
|
3032
|
+
});
|
|
3033
|
+
}
|
|
3034
|
+
|
|
3035
|
+
/**
|
|
3036
|
+
* Update a life event
|
|
3037
|
+
* Updates an existing life event. If If-Match header is provided, performs optimistic concurrency check; mismatched updatedAt returns 412.
|
|
3038
|
+
* @param data The data for the request.
|
|
3039
|
+
* @param data.id Life event ID
|
|
3040
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
3041
|
+
* @param data.requestBody
|
|
3042
|
+
* @returns EventResponseDto Life event updated successfully
|
|
3043
|
+
* @throws ApiError
|
|
3044
|
+
*/
|
|
3045
|
+
public static eventControllerUpdate(
|
|
3046
|
+
data: EventControllerUpdateData
|
|
3047
|
+
): CancelablePromise<EventControllerUpdateResponse> {
|
|
3048
|
+
return __request(OpenAPI, {
|
|
3049
|
+
method: 'PUT',
|
|
3050
|
+
url: '/api/v1/{region}/bean/events/{id}',
|
|
3051
|
+
path: {
|
|
3052
|
+
id: data.id,
|
|
3053
|
+
region: data.region
|
|
3054
|
+
},
|
|
3055
|
+
body: data.requestBody,
|
|
3056
|
+
mediaType: 'application/json',
|
|
3057
|
+
errors: {
|
|
3058
|
+
400: 'If-Match header is not a valid ISO 8601 date',
|
|
3059
|
+
404: 'Life event not found',
|
|
3060
|
+
409: 'Updated event conflicts with an existing (userId, type, date) combination',
|
|
3061
|
+
412: 'If-Match precondition failed (updatedAt mismatch)'
|
|
3062
|
+
}
|
|
3063
|
+
});
|
|
3064
|
+
}
|
|
3065
|
+
|
|
3066
|
+
/**
|
|
3067
|
+
* Delete a life event
|
|
3068
|
+
* Deletes a life event entry (hard delete). Returns 204.
|
|
3069
|
+
* @param data The data for the request.
|
|
3070
|
+
* @param data.id Life event ID
|
|
3071
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
3072
|
+
* @returns void Life event deleted successfully
|
|
3073
|
+
* @throws ApiError
|
|
3074
|
+
*/
|
|
3075
|
+
public static eventControllerDelete(
|
|
3076
|
+
data: EventControllerDeleteData
|
|
3077
|
+
): CancelablePromise<EventControllerDeleteResponse> {
|
|
3078
|
+
return __request(OpenAPI, {
|
|
3079
|
+
method: 'DELETE',
|
|
3080
|
+
url: '/api/v1/{region}/bean/events/{id}',
|
|
3081
|
+
path: {
|
|
3082
|
+
id: data.id,
|
|
3083
|
+
region: data.region
|
|
3084
|
+
},
|
|
3085
|
+
errors: {
|
|
3086
|
+
404: 'Life event not found'
|
|
3087
|
+
}
|
|
3088
|
+
});
|
|
3089
|
+
}
|
|
3090
|
+
|
|
3091
|
+
/**
|
|
3092
|
+
* Slice time-series by a life event (Phase 79)
|
|
3093
|
+
* Returns aggregated time-series for postings matching accountPattern within the half-open date range of the given life event.
|
|
3094
|
+
* @param data The data for the request.
|
|
3095
|
+
* @param data.id Life event ID
|
|
3096
|
+
* @param data.accountPattern
|
|
3097
|
+
* @param data.granularity
|
|
3098
|
+
* @param data.region Region code for tenant context (decorative for life events)
|
|
3099
|
+
* @returns unknown Time-series sliced by the life event range
|
|
3100
|
+
* @throws ApiError
|
|
3101
|
+
*/
|
|
3102
|
+
public static eventControllerGetSlice(
|
|
3103
|
+
data: EventControllerGetSliceData
|
|
3104
|
+
): CancelablePromise<EventControllerGetSliceResponse> {
|
|
3105
|
+
return __request(OpenAPI, {
|
|
3106
|
+
method: 'GET',
|
|
3107
|
+
url: '/api/v1/{region}/bean/events/{id}/slice',
|
|
3108
|
+
path: {
|
|
3109
|
+
id: data.id,
|
|
3110
|
+
region: data.region
|
|
3111
|
+
},
|
|
3112
|
+
query: {
|
|
3113
|
+
accountPattern: data.accountPattern,
|
|
3114
|
+
granularity: data.granularity
|
|
3115
|
+
},
|
|
3116
|
+
errors: {
|
|
3117
|
+
400: 'accountPattern query param is empty',
|
|
3118
|
+
404: 'Life event not found'
|
|
3119
|
+
}
|
|
3120
|
+
});
|
|
3121
|
+
}
|
|
3122
|
+
}
|
|
3123
|
+
|
|
3124
|
+
export class OnboardingService {
|
|
3125
|
+
/**
|
|
3126
|
+
* Bootstrap core accounts + register asset accounts with opening balances (ADR-0113)
|
|
3127
|
+
* @param data The data for the request.
|
|
3128
|
+
* @param data.region Region code for tenant context. Not-yet-open codes are accepted: the universal catalog backs onboarding regardless of region (#759)
|
|
3129
|
+
* @param data.requestBody
|
|
3130
|
+
* @returns unknown Onboarding bootstrap result.
|
|
3131
|
+
* @throws ApiError
|
|
3132
|
+
*/
|
|
3133
|
+
public static onboardingControllerBootstrap(
|
|
3134
|
+
data: OnboardingControllerBootstrapData
|
|
3135
|
+
): CancelablePromise<OnboardingControllerBootstrapResponse> {
|
|
3136
|
+
return __request(OpenAPI, {
|
|
3137
|
+
method: 'POST',
|
|
3138
|
+
url: '/api/v1/{region}/bean/onboarding',
|
|
3139
|
+
path: {
|
|
3140
|
+
region: data.region
|
|
3141
|
+
},
|
|
3142
|
+
body: data.requestBody,
|
|
3143
|
+
mediaType: 'application/json',
|
|
3144
|
+
errors: {
|
|
3145
|
+
422: 'Invalid region/account path/duplicate paths.'
|
|
3146
|
+
}
|
|
3147
|
+
});
|
|
3148
|
+
}
|
|
3149
|
+
}
|
|
3150
|
+
|
|
3151
|
+
export class BalanceReconciliationService {
|
|
3152
|
+
/**
|
|
3153
|
+
* Preview reconciliation (book vs actual)
|
|
3154
|
+
* Computes book balance, diff, Beancount-inferred tolerance, and suggested action without persisting.
|
|
3155
|
+
* @param data The data for the request.
|
|
3156
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3157
|
+
* @param data.requestBody
|
|
3158
|
+
* @returns ReconciliationComputeResultDto Reconciliation preview
|
|
2549
3159
|
* @throws ApiError
|
|
2550
3160
|
*/
|
|
2551
|
-
public static
|
|
2552
|
-
data:
|
|
2553
|
-
): CancelablePromise<
|
|
3161
|
+
public static reconciliationControllerCompute(
|
|
3162
|
+
data: ReconciliationControllerComputeData
|
|
3163
|
+
): CancelablePromise<ReconciliationControllerComputeResponse> {
|
|
2554
3164
|
return __request(OpenAPI, {
|
|
2555
|
-
method: '
|
|
2556
|
-
url: '/api/v1/{region}/bean/
|
|
3165
|
+
method: 'POST',
|
|
3166
|
+
url: '/api/v1/{region}/bean/reconciliations',
|
|
2557
3167
|
path: {
|
|
2558
|
-
id: data.id,
|
|
2559
3168
|
region: data.region
|
|
2560
3169
|
},
|
|
3170
|
+
body: data.requestBody,
|
|
3171
|
+
mediaType: 'application/json',
|
|
2561
3172
|
errors: {
|
|
2562
|
-
404: '
|
|
3173
|
+
404: 'Account not found'
|
|
2563
3174
|
}
|
|
2564
3175
|
});
|
|
2565
3176
|
}
|
|
2566
3177
|
|
|
2567
3178
|
/**
|
|
2568
|
-
*
|
|
2569
|
-
*
|
|
3179
|
+
* Record a balance assertion
|
|
3180
|
+
* Persists the reconciliation as a BeanBalance assertion (amount = actual, diffAmount = book − actual). Re-reconciling the same day/currency upserts.
|
|
2570
3181
|
* @param data The data for the request.
|
|
2571
|
-
* @param data.
|
|
2572
|
-
* @param data.region Region code for tenant context (decorative for life events)
|
|
3182
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
2573
3183
|
* @param data.requestBody
|
|
2574
|
-
* @returns
|
|
3184
|
+
* @returns ReconciliationRecordDto Balance assertion recorded
|
|
2575
3185
|
* @throws ApiError
|
|
2576
3186
|
*/
|
|
2577
|
-
public static
|
|
2578
|
-
data:
|
|
2579
|
-
): CancelablePromise<
|
|
3187
|
+
public static reconciliationControllerAssert(
|
|
3188
|
+
data: ReconciliationControllerAssertData
|
|
3189
|
+
): CancelablePromise<ReconciliationControllerAssertResponse> {
|
|
2580
3190
|
return __request(OpenAPI, {
|
|
2581
|
-
method: '
|
|
2582
|
-
url: '/api/v1/{region}/bean/
|
|
3191
|
+
method: 'POST',
|
|
3192
|
+
url: '/api/v1/{region}/bean/reconciliations/assert',
|
|
2583
3193
|
path: {
|
|
2584
|
-
id: data.id,
|
|
2585
3194
|
region: data.region
|
|
2586
3195
|
},
|
|
2587
3196
|
body: data.requestBody,
|
|
2588
3197
|
mediaType: 'application/json',
|
|
2589
3198
|
errors: {
|
|
2590
|
-
|
|
2591
|
-
404: 'Life event not found',
|
|
2592
|
-
409: 'Updated event conflicts with an existing (userId, type, date) combination',
|
|
2593
|
-
412: 'If-Match precondition failed (updatedAt mismatch)'
|
|
3199
|
+
404: 'Account not found'
|
|
2594
3200
|
}
|
|
2595
3201
|
});
|
|
2596
3202
|
}
|
|
2597
3203
|
|
|
2598
3204
|
/**
|
|
2599
|
-
*
|
|
2600
|
-
*
|
|
3205
|
+
* Generate a pad adjusting entry
|
|
3206
|
+
* When book is outside tolerance, synthesizes a Beancount pad transaction (flag P) booking the diff from source_account and persists it. Source defaults to Equity:Opening-Balances.
|
|
2601
3207
|
* @param data The data for the request.
|
|
2602
|
-
* @param data.
|
|
2603
|
-
* @param data.
|
|
2604
|
-
* @returns
|
|
3208
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3209
|
+
* @param data.requestBody
|
|
3210
|
+
* @returns PadResultDto Pad adjusting entry generated
|
|
2605
3211
|
* @throws ApiError
|
|
2606
3212
|
*/
|
|
2607
|
-
public static
|
|
2608
|
-
data:
|
|
2609
|
-
): CancelablePromise<
|
|
3213
|
+
public static reconciliationControllerPad(
|
|
3214
|
+
data: ReconciliationControllerPadData
|
|
3215
|
+
): CancelablePromise<ReconciliationControllerPadResponse> {
|
|
2610
3216
|
return __request(OpenAPI, {
|
|
2611
|
-
method: '
|
|
2612
|
-
url: '/api/v1/{region}/bean/
|
|
3217
|
+
method: 'POST',
|
|
3218
|
+
url: '/api/v1/{region}/bean/reconciliations/pad',
|
|
2613
3219
|
path: {
|
|
2614
|
-
id: data.id,
|
|
2615
3220
|
region: data.region
|
|
2616
3221
|
},
|
|
3222
|
+
body: data.requestBody,
|
|
3223
|
+
mediaType: 'application/json',
|
|
2617
3224
|
errors: {
|
|
2618
|
-
|
|
3225
|
+
400: 'Book already within tolerance — no pad needed',
|
|
3226
|
+
404: 'Account not found'
|
|
2619
3227
|
}
|
|
2620
3228
|
});
|
|
2621
3229
|
}
|
|
2622
3230
|
|
|
2623
3231
|
/**
|
|
2624
|
-
*
|
|
2625
|
-
* Returns
|
|
3232
|
+
* List reconciliation history for an account
|
|
3233
|
+
* Returns recorded balance assertions (most recent first). The latest drives the account-detail "Last <date>" badge.
|
|
2626
3234
|
* @param data The data for the request.
|
|
2627
|
-
* @param data.
|
|
2628
|
-
* @param data.
|
|
2629
|
-
* @
|
|
2630
|
-
* @param data.region Region code for tenant context (decorative for life events)
|
|
2631
|
-
* @returns unknown Time-series sliced by the life event range
|
|
3235
|
+
* @param data.accountId BeanAccount id
|
|
3236
|
+
* @param data.region Region code for tenant context (decorative for reconciliation)
|
|
3237
|
+
* @returns ReconciliationRecordDto Reconciliation history
|
|
2632
3238
|
* @throws ApiError
|
|
2633
3239
|
*/
|
|
2634
|
-
public static
|
|
2635
|
-
data:
|
|
2636
|
-
): CancelablePromise<
|
|
3240
|
+
public static reconciliationControllerHistory(
|
|
3241
|
+
data: ReconciliationControllerHistoryData
|
|
3242
|
+
): CancelablePromise<ReconciliationControllerHistoryResponse> {
|
|
2637
3243
|
return __request(OpenAPI, {
|
|
2638
3244
|
method: 'GET',
|
|
2639
|
-
url: '/api/v1/{region}/bean/
|
|
3245
|
+
url: '/api/v1/{region}/bean/accounts/{accountId}/reconciliations',
|
|
2640
3246
|
path: {
|
|
2641
|
-
|
|
3247
|
+
accountId: data.accountId,
|
|
2642
3248
|
region: data.region
|
|
2643
3249
|
},
|
|
2644
|
-
query: {
|
|
2645
|
-
accountPattern: data.accountPattern,
|
|
2646
|
-
granularity: data.granularity
|
|
2647
|
-
},
|
|
2648
3250
|
errors: {
|
|
2649
|
-
|
|
2650
|
-
404: 'Life event not found'
|
|
3251
|
+
404: 'Account not found'
|
|
2651
3252
|
}
|
|
2652
3253
|
});
|
|
2653
3254
|
}
|
|
@@ -2657,13 +3258,20 @@ export class BeanExportService {
|
|
|
2657
3258
|
/**
|
|
2658
3259
|
* Export Beancount ledger as ZIP
|
|
2659
3260
|
* Export all user Beancount data as a ZIP file containing ledger.beancount and yearly files in community format.
|
|
2660
|
-
* @
|
|
3261
|
+
* @param data The data for the request.
|
|
3262
|
+
* @param data.region Region code for tenant context
|
|
3263
|
+
* @returns binary ZIP archive (application/zip) streamed as an attachment
|
|
2661
3264
|
* @throws ApiError
|
|
2662
3265
|
*/
|
|
2663
|
-
public static exportControllerExportBeancount(
|
|
3266
|
+
public static exportControllerExportBeancount(
|
|
3267
|
+
data: ExportControllerExportBeancountData
|
|
3268
|
+
): CancelablePromise<ExportControllerExportBeancountResponse> {
|
|
2664
3269
|
return __request(OpenAPI, {
|
|
2665
3270
|
method: 'GET',
|
|
2666
|
-
url: '/api/v1/{region}/bean/export/beancount'
|
|
3271
|
+
url: '/api/v1/{region}/bean/export/beancount',
|
|
3272
|
+
path: {
|
|
3273
|
+
region: data.region
|
|
3274
|
+
}
|
|
2667
3275
|
});
|
|
2668
3276
|
}
|
|
2669
3277
|
}
|
|
@@ -2700,7 +3308,7 @@ export class BeanImportService {
|
|
|
2700
3308
|
|
|
2701
3309
|
/**
|
|
2702
3310
|
* Identify file type
|
|
2703
|
-
*
|
|
3311
|
+
* Server-side importer identification has been removed (ADR-0101); file matching is handled client-side via the community parser pipeline. Always returns identified=false with an explanatory message; kept for backward compatibility. Does not perform actual import.
|
|
2704
3312
|
* @param data The data for the request.
|
|
2705
3313
|
* @param data.region Region code for tenant context
|
|
2706
3314
|
* @param data.formData File to identify
|
|
@@ -2831,121 +3439,6 @@ export class BeanImportService {
|
|
|
2831
3439
|
}
|
|
2832
3440
|
}
|
|
2833
3441
|
|
|
2834
|
-
export class BeanPlatformsService {
|
|
2835
|
-
/**
|
|
2836
|
-
* Get all platforms with statistics
|
|
2837
|
-
* @returns unknown List of platforms with binding and account counts
|
|
2838
|
-
* @throws ApiError
|
|
2839
|
-
*/
|
|
2840
|
-
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
2841
|
-
return __request(OpenAPI, {
|
|
2842
|
-
method: 'GET',
|
|
2843
|
-
url: '/api/v1/bean/platforms'
|
|
2844
|
-
});
|
|
2845
|
-
}
|
|
2846
|
-
|
|
2847
|
-
/**
|
|
2848
|
-
* Create a new platform
|
|
2849
|
-
* @param data The data for the request.
|
|
2850
|
-
* @param data.requestBody
|
|
2851
|
-
* @returns unknown Platform created successfully
|
|
2852
|
-
* @throws ApiError
|
|
2853
|
-
*/
|
|
2854
|
-
public static platformControllerCreate(
|
|
2855
|
-
data: PlatformControllerCreateData
|
|
2856
|
-
): CancelablePromise<PlatformControllerCreateResponse> {
|
|
2857
|
-
return __request(OpenAPI, {
|
|
2858
|
-
method: 'POST',
|
|
2859
|
-
url: '/api/v1/bean/platforms',
|
|
2860
|
-
body: data.requestBody,
|
|
2861
|
-
mediaType: 'application/json',
|
|
2862
|
-
errors: {
|
|
2863
|
-
409: 'Platform already exists'
|
|
2864
|
-
}
|
|
2865
|
-
});
|
|
2866
|
-
}
|
|
2867
|
-
|
|
2868
|
-
/**
|
|
2869
|
-
* Get platform list for current user
|
|
2870
|
-
* @returns unknown List of platforms with user binding status
|
|
2871
|
-
* @throws ApiError
|
|
2872
|
-
*/
|
|
2873
|
-
public static platformControllerGetPlatformList(): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
2874
|
-
return __request(OpenAPI, {
|
|
2875
|
-
method: 'GET',
|
|
2876
|
-
url: '/api/v1/bean/platforms/list'
|
|
2877
|
-
});
|
|
2878
|
-
}
|
|
2879
|
-
|
|
2880
|
-
/**
|
|
2881
|
-
* Match platforms by name or alias
|
|
2882
|
-
* @param data The data for the request.
|
|
2883
|
-
* @param data.q Search query — Chinese name, English name, or abbreviation
|
|
2884
|
-
* @param data.region Region code for category override lookup
|
|
2885
|
-
* @returns unknown List of matching platforms with suggested segment names
|
|
2886
|
-
* @throws ApiError
|
|
2887
|
-
*/
|
|
2888
|
-
public static platformControllerMatchPlatforms(
|
|
2889
|
-
data: PlatformControllerMatchPlatformsData
|
|
2890
|
-
): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
|
|
2891
|
-
return __request(OpenAPI, {
|
|
2892
|
-
method: 'GET',
|
|
2893
|
-
url: '/api/v1/bean/platforms/match',
|
|
2894
|
-
query: {
|
|
2895
|
-
q: data.q,
|
|
2896
|
-
region: data.region
|
|
2897
|
-
}
|
|
2898
|
-
});
|
|
2899
|
-
}
|
|
2900
|
-
|
|
2901
|
-
/**
|
|
2902
|
-
* Update a platform
|
|
2903
|
-
* @param data The data for the request.
|
|
2904
|
-
* @param data.id Platform ID
|
|
2905
|
-
* @param data.requestBody
|
|
2906
|
-
* @returns unknown Platform updated successfully
|
|
2907
|
-
* @throws ApiError
|
|
2908
|
-
*/
|
|
2909
|
-
public static platformControllerUpdate(
|
|
2910
|
-
data: PlatformControllerUpdateData
|
|
2911
|
-
): CancelablePromise<PlatformControllerUpdateResponse> {
|
|
2912
|
-
return __request(OpenAPI, {
|
|
2913
|
-
method: 'PUT',
|
|
2914
|
-
url: '/api/v1/bean/platforms/{id}',
|
|
2915
|
-
path: {
|
|
2916
|
-
id: data.id
|
|
2917
|
-
},
|
|
2918
|
-
body: data.requestBody,
|
|
2919
|
-
mediaType: 'application/json',
|
|
2920
|
-
errors: {
|
|
2921
|
-
404: 'Platform not found'
|
|
2922
|
-
}
|
|
2923
|
-
});
|
|
2924
|
-
}
|
|
2925
|
-
|
|
2926
|
-
/**
|
|
2927
|
-
* Delete a platform
|
|
2928
|
-
* @param data The data for the request.
|
|
2929
|
-
* @param data.id Platform ID
|
|
2930
|
-
* @returns void Platform deleted successfully
|
|
2931
|
-
* @throws ApiError
|
|
2932
|
-
*/
|
|
2933
|
-
public static platformControllerDelete(
|
|
2934
|
-
data: PlatformControllerDeleteData
|
|
2935
|
-
): CancelablePromise<PlatformControllerDeleteResponse> {
|
|
2936
|
-
return __request(OpenAPI, {
|
|
2937
|
-
method: 'DELETE',
|
|
2938
|
-
url: '/api/v1/bean/platforms/{id}',
|
|
2939
|
-
path: {
|
|
2940
|
-
id: data.id
|
|
2941
|
-
},
|
|
2942
|
-
errors: {
|
|
2943
|
-
404: 'Platform not found'
|
|
2944
|
-
}
|
|
2945
|
-
});
|
|
2946
|
-
}
|
|
2947
|
-
}
|
|
2948
|
-
|
|
2949
3442
|
export class ProviderSyncService {
|
|
2950
3443
|
/**
|
|
2951
3444
|
* Sync transactions from financial data provider
|
|
@@ -3026,21 +3519,116 @@ export class ProviderSyncService {
|
|
|
3026
3519
|
* @param data The data for the request.
|
|
3027
3520
|
* @param data.providerName Provider name to check
|
|
3028
3521
|
* @param data.region Region code for tenant context
|
|
3029
|
-
* @returns unknown Provider support status
|
|
3522
|
+
* @returns unknown Provider support status
|
|
3523
|
+
* @throws ApiError
|
|
3524
|
+
*/
|
|
3525
|
+
public static providerSyncControllerIsProviderSupported(
|
|
3526
|
+
data: ProviderSyncControllerIsProviderSupportedData
|
|
3527
|
+
): CancelablePromise<ProviderSyncControllerIsProviderSupportedResponse> {
|
|
3528
|
+
return __request(OpenAPI, {
|
|
3529
|
+
method: 'GET',
|
|
3530
|
+
url: '/api/v1/{region}/bean/import/provider/{providerName}/supported',
|
|
3531
|
+
path: {
|
|
3532
|
+
providerName: data.providerName,
|
|
3533
|
+
region: data.region
|
|
3534
|
+
},
|
|
3535
|
+
errors: {
|
|
3536
|
+
401: 'Missing or invalid authentication'
|
|
3537
|
+
}
|
|
3538
|
+
});
|
|
3539
|
+
}
|
|
3540
|
+
}
|
|
3541
|
+
|
|
3542
|
+
export class ExternalAccountLinksService {
|
|
3543
|
+
/**
|
|
3544
|
+
* Create an external account → BeanAccount mapping (ADR-0113)
|
|
3545
|
+
* @param data The data for the request.
|
|
3546
|
+
* @param data.region Region code for tenant context
|
|
3547
|
+
* @param data.requestBody
|
|
3548
|
+
* @returns ExternalAccountLinkResponseDto Link created.
|
|
3549
|
+
* @throws ApiError
|
|
3550
|
+
*/
|
|
3551
|
+
public static externalAccountLinkControllerCreate(
|
|
3552
|
+
data: ExternalAccountLinkControllerCreateData
|
|
3553
|
+
): CancelablePromise<ExternalAccountLinkControllerCreateResponse> {
|
|
3554
|
+
return __request(OpenAPI, {
|
|
3555
|
+
method: 'POST',
|
|
3556
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
3557
|
+
path: {
|
|
3558
|
+
region: data.region
|
|
3559
|
+
},
|
|
3560
|
+
body: data.requestBody,
|
|
3561
|
+
mediaType: 'application/json',
|
|
3562
|
+
errors: {
|
|
3563
|
+
422: 'beanAccountId not owned, or an active link already exists.'
|
|
3564
|
+
}
|
|
3565
|
+
});
|
|
3566
|
+
}
|
|
3567
|
+
|
|
3568
|
+
/**
|
|
3569
|
+
* List the user's active external account links
|
|
3570
|
+
* @param data The data for the request.
|
|
3571
|
+
* @param data.provider
|
|
3572
|
+
* @param data.region Region code for tenant context
|
|
3573
|
+
* @returns ExternalAccountLinkListResponseDto Links retrieved.
|
|
3574
|
+
* @throws ApiError
|
|
3575
|
+
*/
|
|
3576
|
+
public static externalAccountLinkControllerFindAll(
|
|
3577
|
+
data: ExternalAccountLinkControllerFindAllData
|
|
3578
|
+
): CancelablePromise<ExternalAccountLinkControllerFindAllResponse> {
|
|
3579
|
+
return __request(OpenAPI, {
|
|
3580
|
+
method: 'GET',
|
|
3581
|
+
url: '/api/v1/{region}/bean/external-account-links',
|
|
3582
|
+
path: {
|
|
3583
|
+
region: data.region
|
|
3584
|
+
},
|
|
3585
|
+
query: {
|
|
3586
|
+
provider: data.provider
|
|
3587
|
+
}
|
|
3588
|
+
});
|
|
3589
|
+
}
|
|
3590
|
+
|
|
3591
|
+
/**
|
|
3592
|
+
* Get a single external account link
|
|
3593
|
+
* @param data The data for the request.
|
|
3594
|
+
* @param data.id
|
|
3595
|
+
* @param data.region Region code for tenant context
|
|
3596
|
+
* @returns ExternalAccountLinkResponseDto Link retrieved.
|
|
3597
|
+
* @throws ApiError
|
|
3598
|
+
*/
|
|
3599
|
+
public static externalAccountLinkControllerFindOne(
|
|
3600
|
+
data: ExternalAccountLinkControllerFindOneData
|
|
3601
|
+
): CancelablePromise<ExternalAccountLinkControllerFindOneResponse> {
|
|
3602
|
+
return __request(OpenAPI, {
|
|
3603
|
+
method: 'GET',
|
|
3604
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3605
|
+
path: {
|
|
3606
|
+
id: data.id,
|
|
3607
|
+
region: data.region
|
|
3608
|
+
},
|
|
3609
|
+
errors: {
|
|
3610
|
+
422: 'Link not found or not owned by the user.'
|
|
3611
|
+
}
|
|
3612
|
+
});
|
|
3613
|
+
}
|
|
3614
|
+
|
|
3615
|
+
/**
|
|
3616
|
+
* Soft-delete (disconnect) an external account link
|
|
3617
|
+
* @param data The data for the request.
|
|
3618
|
+
* @param data.id
|
|
3619
|
+
* @param data.region Region code for tenant context
|
|
3620
|
+
* @returns void Link soft-deleted; historical transactions are unaffected.
|
|
3030
3621
|
* @throws ApiError
|
|
3031
3622
|
*/
|
|
3032
|
-
public static
|
|
3033
|
-
data:
|
|
3034
|
-
): CancelablePromise<
|
|
3623
|
+
public static externalAccountLinkControllerRemove(
|
|
3624
|
+
data: ExternalAccountLinkControllerRemoveData
|
|
3625
|
+
): CancelablePromise<ExternalAccountLinkControllerRemoveResponse> {
|
|
3035
3626
|
return __request(OpenAPI, {
|
|
3036
|
-
method: '
|
|
3037
|
-
url: '/api/v1/{region}/bean/
|
|
3627
|
+
method: 'DELETE',
|
|
3628
|
+
url: '/api/v1/{region}/bean/external-account-links/{id}',
|
|
3038
3629
|
path: {
|
|
3039
|
-
|
|
3630
|
+
id: data.id,
|
|
3040
3631
|
region: data.region
|
|
3041
|
-
},
|
|
3042
|
-
errors: {
|
|
3043
|
-
401: 'Missing or invalid authentication'
|
|
3044
3632
|
}
|
|
3045
3633
|
});
|
|
3046
3634
|
}
|
|
@@ -3204,479 +3792,330 @@ export class BeanNlpService {
|
|
|
3204
3792
|
}
|
|
3205
3793
|
}
|
|
3206
3794
|
|
|
3207
|
-
export class
|
|
3795
|
+
export class BeanPlatformsService {
|
|
3208
3796
|
/**
|
|
3209
|
-
* Get
|
|
3210
|
-
*
|
|
3211
|
-
* @param data The data for the request.
|
|
3212
|
-
* @param data.region Region code for tenant context
|
|
3213
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3214
|
-
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3797
|
+
* Get all platforms with statistics
|
|
3798
|
+
* @returns unknown List of platforms with binding and account counts
|
|
3215
3799
|
* @throws ApiError
|
|
3216
3800
|
*/
|
|
3217
|
-
public static
|
|
3218
|
-
data: DashboardControllerGetNetWorthData
|
|
3219
|
-
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3801
|
+
public static platformControllerFindAll(): CancelablePromise<PlatformControllerFindAllResponse> {
|
|
3220
3802
|
return __request(OpenAPI, {
|
|
3221
3803
|
method: 'GET',
|
|
3222
|
-
url: '/api/v1/
|
|
3223
|
-
path: {
|
|
3224
|
-
region: data.region
|
|
3225
|
-
},
|
|
3226
|
-
query: {
|
|
3227
|
-
date: data.date
|
|
3228
|
-
},
|
|
3229
|
-
errors: {
|
|
3230
|
-
401: 'User not authenticated'
|
|
3231
|
-
}
|
|
3804
|
+
url: '/api/v1/bean/platforms'
|
|
3232
3805
|
});
|
|
3233
3806
|
}
|
|
3234
3807
|
|
|
3235
3808
|
/**
|
|
3236
|
-
*
|
|
3237
|
-
* Returns accounts with balances grouped by financial platform
|
|
3809
|
+
* Create a new platform
|
|
3238
3810
|
* @param data The data for the request.
|
|
3239
|
-
* @param data.
|
|
3240
|
-
* @
|
|
3241
|
-
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3242
|
-
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3243
|
-
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3811
|
+
* @param data.requestBody
|
|
3812
|
+
* @returns unknown Platform created successfully
|
|
3244
3813
|
* @throws ApiError
|
|
3245
3814
|
*/
|
|
3246
|
-
public static
|
|
3247
|
-
data:
|
|
3248
|
-
): CancelablePromise<
|
|
3815
|
+
public static platformControllerCreate(
|
|
3816
|
+
data: PlatformControllerCreateData
|
|
3817
|
+
): CancelablePromise<PlatformControllerCreateResponse> {
|
|
3249
3818
|
return __request(OpenAPI, {
|
|
3250
|
-
method: '
|
|
3251
|
-
url: '/api/v1/
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
},
|
|
3255
|
-
query: {
|
|
3256
|
-
groupBy: data.groupBy,
|
|
3257
|
-
date: data.date,
|
|
3258
|
-
accountId: data.accountId
|
|
3259
|
-
},
|
|
3819
|
+
method: 'POST',
|
|
3820
|
+
url: '/api/v1/bean/platforms',
|
|
3821
|
+
body: data.requestBody,
|
|
3822
|
+
mediaType: 'application/json',
|
|
3260
3823
|
errors: {
|
|
3261
|
-
|
|
3824
|
+
409: 'Platform already exists'
|
|
3262
3825
|
}
|
|
3263
3826
|
});
|
|
3264
3827
|
}
|
|
3265
3828
|
|
|
3266
3829
|
/**
|
|
3267
|
-
* Get
|
|
3268
|
-
* Returns income, expenses, and savings for a monthly period
|
|
3830
|
+
* Get platform list for current user
|
|
3269
3831
|
* @param data The data for the request.
|
|
3270
|
-
* @param data.
|
|
3271
|
-
* @
|
|
3272
|
-
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3832
|
+
* @param data.region Region code (ISO 3166-1 alpha-2) that biases within-type-bucket ordering (local-region platforms first). Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
|
|
3833
|
+
* @returns PlatformListItemDto List of platforms with user binding status
|
|
3273
3834
|
* @throws ApiError
|
|
3274
3835
|
*/
|
|
3275
|
-
public static
|
|
3276
|
-
data:
|
|
3277
|
-
): CancelablePromise<
|
|
3836
|
+
public static platformControllerGetPlatformList(
|
|
3837
|
+
data: PlatformControllerGetPlatformListData = {}
|
|
3838
|
+
): CancelablePromise<PlatformControllerGetPlatformListResponse> {
|
|
3278
3839
|
return __request(OpenAPI, {
|
|
3279
3840
|
method: 'GET',
|
|
3280
|
-
url: '/api/v1/
|
|
3281
|
-
path: {
|
|
3282
|
-
region: data.region
|
|
3283
|
-
},
|
|
3841
|
+
url: '/api/v1/bean/platforms/list',
|
|
3284
3842
|
query: {
|
|
3285
|
-
|
|
3286
|
-
},
|
|
3287
|
-
errors: {
|
|
3288
|
-
400: 'Invalid period format',
|
|
3289
|
-
401: 'User not authenticated'
|
|
3843
|
+
region: data.region
|
|
3290
3844
|
}
|
|
3291
3845
|
});
|
|
3292
3846
|
}
|
|
3293
3847
|
|
|
3294
3848
|
/**
|
|
3295
|
-
*
|
|
3296
|
-
* Returns amounts pre-aggregated by functional category (account-path Group segment) with server-side multi-currency conversion. flow=expense (default) aggregates ^Expenses: accounts; flow=income aggregates ^Income: accounts (issue #518)
|
|
3849
|
+
* Match platforms by name or alias
|
|
3297
3850
|
* @param data The data for the request.
|
|
3298
|
-
* @param data.
|
|
3299
|
-
* @param data.
|
|
3300
|
-
* @
|
|
3301
|
-
* @param data.flow Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
3302
|
-
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3851
|
+
* @param data.q Search query — Chinese name, English name, or abbreviation
|
|
3852
|
+
* @param data.region Region code (ISO 3166-1 alpha-2) that biases within-tier ordering (local-region platforms first); also the intended categoryOverrides key. Case-insensitive — stored/compared UPPERCASE ("cn" == "CN").
|
|
3853
|
+
* @returns PlatformMatchResponseDto Matching platforms with overall match type and truncation flag
|
|
3303
3854
|
* @throws ApiError
|
|
3304
3855
|
*/
|
|
3305
|
-
public static
|
|
3306
|
-
data:
|
|
3307
|
-
): CancelablePromise<
|
|
3856
|
+
public static platformControllerMatchPlatforms(
|
|
3857
|
+
data: PlatformControllerMatchPlatformsData
|
|
3858
|
+
): CancelablePromise<PlatformControllerMatchPlatformsResponse> {
|
|
3308
3859
|
return __request(OpenAPI, {
|
|
3309
3860
|
method: 'GET',
|
|
3310
|
-
url: '/api/v1/
|
|
3311
|
-
path: {
|
|
3312
|
-
region: data.region
|
|
3313
|
-
},
|
|
3861
|
+
url: '/api/v1/bean/platforms/match',
|
|
3314
3862
|
query: {
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
flow: data.flow
|
|
3318
|
-
},
|
|
3319
|
-
errors: {
|
|
3320
|
-
400: 'Invalid groupBy or period',
|
|
3321
|
-
401: 'User not authenticated'
|
|
3863
|
+
q: data.q,
|
|
3864
|
+
region: data.region
|
|
3322
3865
|
}
|
|
3323
3866
|
});
|
|
3324
3867
|
}
|
|
3325
|
-
}
|
|
3326
3868
|
|
|
3327
|
-
export class InvestmentService {
|
|
3328
3869
|
/**
|
|
3329
|
-
* Get
|
|
3330
|
-
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3870
|
+
* Get the region and candidate account standards for a platform
|
|
3331
3871
|
* @param data The data for the request.
|
|
3332
|
-
* @param data.
|
|
3333
|
-
* @param data.
|
|
3334
|
-
* @param data.
|
|
3335
|
-
* @
|
|
3336
|
-
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3872
|
+
* @param data.id Platform ID (from a match result)
|
|
3873
|
+
* @param data.region Region code (ISO 3166-1 alpha-2, case-insensitive). Required for global platforms (countryCode null) — resolved as their template region; ignored when the platform has its own countryCode.
|
|
3874
|
+
* @param data.type Filter templates by account type (path first segment)
|
|
3875
|
+
* @returns PlatformStandardsResponseDto Resolved region plus the merged account-standard catalog of that region (groupable by productCategory client-side)
|
|
3337
3876
|
* @throws ApiError
|
|
3338
3877
|
*/
|
|
3339
|
-
public static
|
|
3340
|
-
data:
|
|
3341
|
-
): CancelablePromise<
|
|
3878
|
+
public static platformControllerGetPlatformStandards(
|
|
3879
|
+
data: PlatformControllerGetPlatformStandardsData
|
|
3880
|
+
): CancelablePromise<PlatformControllerGetPlatformStandardsResponse> {
|
|
3342
3881
|
return __request(OpenAPI, {
|
|
3343
3882
|
method: 'GET',
|
|
3344
|
-
url: '/api/v1/{
|
|
3883
|
+
url: '/api/v1/bean/platforms/{id}/standards',
|
|
3345
3884
|
path: {
|
|
3346
|
-
|
|
3885
|
+
id: data.id
|
|
3347
3886
|
},
|
|
3348
3887
|
query: {
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
method: data.method
|
|
3352
|
-
},
|
|
3353
|
-
errors: {
|
|
3354
|
-
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
3355
|
-
401: 'User not authenticated'
|
|
3888
|
+
region: data.region,
|
|
3889
|
+
type: data.type
|
|
3356
3890
|
}
|
|
3357
3891
|
});
|
|
3358
3892
|
}
|
|
3359
|
-
}
|
|
3360
3893
|
|
|
3361
|
-
export class BeanPricesService {
|
|
3362
3894
|
/**
|
|
3363
|
-
*
|
|
3364
|
-
* Creates a new price entry for the authenticated user
|
|
3895
|
+
* Update a platform
|
|
3365
3896
|
* @param data The data for the request.
|
|
3366
|
-
* @param data.
|
|
3897
|
+
* @param data.id Platform ID
|
|
3367
3898
|
* @param data.requestBody
|
|
3368
|
-
* @returns
|
|
3899
|
+
* @returns unknown Platform updated successfully
|
|
3369
3900
|
* @throws ApiError
|
|
3370
3901
|
*/
|
|
3371
|
-
public static
|
|
3372
|
-
data:
|
|
3373
|
-
): CancelablePromise<
|
|
3902
|
+
public static platformControllerUpdate(
|
|
3903
|
+
data: PlatformControllerUpdateData
|
|
3904
|
+
): CancelablePromise<PlatformControllerUpdateResponse> {
|
|
3374
3905
|
return __request(OpenAPI, {
|
|
3375
|
-
method: '
|
|
3376
|
-
url: '/api/v1/{
|
|
3906
|
+
method: 'PUT',
|
|
3907
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3377
3908
|
path: {
|
|
3378
|
-
|
|
3909
|
+
id: data.id
|
|
3379
3910
|
},
|
|
3380
3911
|
body: data.requestBody,
|
|
3381
3912
|
mediaType: 'application/json',
|
|
3382
3913
|
errors: {
|
|
3383
|
-
404: '
|
|
3384
|
-
409: 'Price already exists for this currency pair and date'
|
|
3385
|
-
}
|
|
3386
|
-
});
|
|
3387
|
-
}
|
|
3388
|
-
|
|
3389
|
-
/**
|
|
3390
|
-
* List user prices
|
|
3391
|
-
* Returns all price entries for the authenticated user with optional filtering
|
|
3392
|
-
* @param data The data for the request.
|
|
3393
|
-
* @param data.region Region code for tenant context
|
|
3394
|
-
* @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
|
|
3395
|
-
* @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
|
|
3396
|
-
* @param data.dateFrom Filter prices from this date (ISO 8601 format)
|
|
3397
|
-
* @param data.dateTo Filter prices to this date (ISO 8601 format)
|
|
3398
|
-
* @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
|
|
3399
|
-
* @param data.page Page number for pagination (default: 1)
|
|
3400
|
-
* @param data.limit Number of items per page (default: 20, max: 100)
|
|
3401
|
-
* @returns PriceListResponseDto Prices retrieved successfully
|
|
3402
|
-
* @throws ApiError
|
|
3403
|
-
*/
|
|
3404
|
-
public static priceControllerFindAll(
|
|
3405
|
-
data: PriceControllerFindAllData
|
|
3406
|
-
): CancelablePromise<PriceControllerFindAllResponse> {
|
|
3407
|
-
return __request(OpenAPI, {
|
|
3408
|
-
method: 'GET',
|
|
3409
|
-
url: '/api/v1/{region}/bean/prices',
|
|
3410
|
-
path: {
|
|
3411
|
-
region: data.region
|
|
3412
|
-
},
|
|
3413
|
-
query: {
|
|
3414
|
-
currency: data.currency,
|
|
3415
|
-
quoteCurrency: data.quoteCurrency,
|
|
3416
|
-
dateFrom: data.dateFrom,
|
|
3417
|
-
dateTo: data.dateTo,
|
|
3418
|
-
search: data.search,
|
|
3419
|
-
page: data.page,
|
|
3420
|
-
limit: data.limit
|
|
3421
|
-
}
|
|
3422
|
-
});
|
|
3423
|
-
}
|
|
3424
|
-
|
|
3425
|
-
/**
|
|
3426
|
-
* Get price by ID
|
|
3427
|
-
* Returns a single price entry by its ID
|
|
3428
|
-
* @param data The data for the request.
|
|
3429
|
-
* @param data.id Price ID
|
|
3430
|
-
* @param data.region Region code for tenant context
|
|
3431
|
-
* @returns PriceResponseDto Price retrieved successfully
|
|
3432
|
-
* @throws ApiError
|
|
3433
|
-
*/
|
|
3434
|
-
public static priceControllerFindOne(
|
|
3435
|
-
data: PriceControllerFindOneData
|
|
3436
|
-
): CancelablePromise<PriceControllerFindOneResponse> {
|
|
3437
|
-
return __request(OpenAPI, {
|
|
3438
|
-
method: 'GET',
|
|
3439
|
-
url: '/api/v1/{region}/bean/prices/{id}',
|
|
3440
|
-
path: {
|
|
3441
|
-
id: data.id,
|
|
3442
|
-
region: data.region
|
|
3443
|
-
},
|
|
3444
|
-
errors: {
|
|
3445
|
-
404: 'Price not found'
|
|
3914
|
+
404: 'Platform not found'
|
|
3446
3915
|
}
|
|
3447
3916
|
});
|
|
3448
3917
|
}
|
|
3449
3918
|
|
|
3450
3919
|
/**
|
|
3451
|
-
*
|
|
3452
|
-
* Updates an existing price entry
|
|
3920
|
+
* Delete a platform
|
|
3453
3921
|
* @param data The data for the request.
|
|
3454
|
-
* @param data.id
|
|
3455
|
-
* @
|
|
3456
|
-
* @param data.requestBody
|
|
3457
|
-
* @returns PriceResponseDto Price updated successfully
|
|
3922
|
+
* @param data.id Platform ID
|
|
3923
|
+
* @returns void Platform deleted successfully
|
|
3458
3924
|
* @throws ApiError
|
|
3459
3925
|
*/
|
|
3460
|
-
public static
|
|
3461
|
-
data:
|
|
3462
|
-
): CancelablePromise<
|
|
3926
|
+
public static platformControllerDelete(
|
|
3927
|
+
data: PlatformControllerDeleteData
|
|
3928
|
+
): CancelablePromise<PlatformControllerDeleteResponse> {
|
|
3463
3929
|
return __request(OpenAPI, {
|
|
3464
|
-
method: '
|
|
3465
|
-
url: '/api/v1/
|
|
3930
|
+
method: 'DELETE',
|
|
3931
|
+
url: '/api/v1/bean/platforms/{id}',
|
|
3466
3932
|
path: {
|
|
3467
|
-
id: data.id
|
|
3468
|
-
region: data.region
|
|
3933
|
+
id: data.id
|
|
3469
3934
|
},
|
|
3470
|
-
body: data.requestBody,
|
|
3471
|
-
mediaType: 'application/json',
|
|
3472
3935
|
errors: {
|
|
3473
|
-
404: '
|
|
3474
|
-
409: 'Updated price conflicts with existing price'
|
|
3936
|
+
404: 'Platform not found'
|
|
3475
3937
|
}
|
|
3476
3938
|
});
|
|
3477
3939
|
}
|
|
3940
|
+
}
|
|
3478
3941
|
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
*
|
|
3942
|
+
export class DashboardService {
|
|
3943
|
+
/**
|
|
3944
|
+
* Get net worth overview
|
|
3945
|
+
* Returns total net worth with breakdown of assets and liabilities
|
|
3482
3946
|
* @param data The data for the request.
|
|
3483
|
-
* @param data.id Price ID
|
|
3484
3947
|
* @param data.region Region code for tenant context
|
|
3485
|
-
* @
|
|
3948
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3949
|
+
* @returns NetWorthResponseDto Net worth retrieved successfully
|
|
3486
3950
|
* @throws ApiError
|
|
3487
3951
|
*/
|
|
3488
|
-
public static
|
|
3489
|
-
data:
|
|
3490
|
-
): CancelablePromise<
|
|
3952
|
+
public static dashboardControllerGetNetWorth(
|
|
3953
|
+
data: DashboardControllerGetNetWorthData
|
|
3954
|
+
): CancelablePromise<DashboardControllerGetNetWorthResponse> {
|
|
3491
3955
|
return __request(OpenAPI, {
|
|
3492
|
-
method: '
|
|
3493
|
-
url: '/api/v1/{region}/
|
|
3956
|
+
method: 'GET',
|
|
3957
|
+
url: '/api/v1/{region}/dashboard/net-worth',
|
|
3494
3958
|
path: {
|
|
3495
|
-
id: data.id,
|
|
3496
3959
|
region: data.region
|
|
3497
3960
|
},
|
|
3961
|
+
query: {
|
|
3962
|
+
date: data.date
|
|
3963
|
+
},
|
|
3498
3964
|
errors: {
|
|
3499
|
-
|
|
3965
|
+
401: 'User not authenticated'
|
|
3500
3966
|
}
|
|
3501
3967
|
});
|
|
3502
3968
|
}
|
|
3503
3969
|
|
|
3504
3970
|
/**
|
|
3505
|
-
*
|
|
3506
|
-
*
|
|
3971
|
+
* Get accounts grouped by platform
|
|
3972
|
+
* Returns accounts with balances grouped by financial platform
|
|
3507
3973
|
* @param data The data for the request.
|
|
3508
3974
|
* @param data.region Region code for tenant context
|
|
3509
|
-
* @param data.
|
|
3510
|
-
* @
|
|
3975
|
+
* @param data.groupBy Grouping strategy
|
|
3976
|
+
* @param data.date Date for balance calculation (ISO 8601 format)
|
|
3977
|
+
* @param data.accountId Scope to a single account (only valid with groupBy=holdingAssetClass, ADR-0105 §6)
|
|
3978
|
+
* @returns unknown Accounts retrieved successfully. Response type depends on groupBy parameter.
|
|
3511
3979
|
* @throws ApiError
|
|
3512
3980
|
*/
|
|
3513
|
-
public static
|
|
3514
|
-
data:
|
|
3515
|
-
): CancelablePromise<
|
|
3981
|
+
public static dashboardControllerGetAccounts(
|
|
3982
|
+
data: DashboardControllerGetAccountsData
|
|
3983
|
+
): CancelablePromise<DashboardControllerGetAccountsResponse> {
|
|
3516
3984
|
return __request(OpenAPI, {
|
|
3517
|
-
method: '
|
|
3518
|
-
url: '/api/v1/{region}/
|
|
3985
|
+
method: 'GET',
|
|
3986
|
+
url: '/api/v1/{region}/dashboard/accounts',
|
|
3519
3987
|
path: {
|
|
3520
3988
|
region: data.region
|
|
3521
3989
|
},
|
|
3522
|
-
|
|
3523
|
-
|
|
3990
|
+
query: {
|
|
3991
|
+
groupBy: data.groupBy,
|
|
3992
|
+
date: data.date,
|
|
3993
|
+
accountId: data.accountId
|
|
3994
|
+
},
|
|
3995
|
+
errors: {
|
|
3996
|
+
401: 'User not authenticated'
|
|
3997
|
+
}
|
|
3524
3998
|
});
|
|
3525
3999
|
}
|
|
3526
|
-
}
|
|
3527
4000
|
|
|
3528
|
-
export class ReportingService {
|
|
3529
4001
|
/**
|
|
3530
|
-
* Get
|
|
3531
|
-
*
|
|
3532
|
-
* Returns time series data of portfolio net worth.
|
|
3533
|
-
*
|
|
3534
|
-
* **Multi-currency Support:**
|
|
3535
|
-
* - `series[].byCurrency` - Currency breakdown for each data point
|
|
3536
|
-
* - `byCurrency` - Separate time series grouped by currency
|
|
3537
|
-
* - `warnings` - Exchange rate warnings if conversion failed
|
|
3538
|
-
*
|
|
3539
|
-
* **Parameters:**
|
|
3540
|
-
* - `period`: Time period (1m, 3m, 6m, 1y)
|
|
3541
|
-
* - `granularity`: Data granularity (day, week, month)
|
|
3542
|
-
*
|
|
4002
|
+
* Get cash flow summary
|
|
4003
|
+
* Returns income, expenses, and savings for a monthly period
|
|
3543
4004
|
* @param data The data for the request.
|
|
4005
|
+
* @param data.period Period in YYYY-MM format
|
|
3544
4006
|
* @param data.region Region code for tenant context
|
|
3545
|
-
* @
|
|
3546
|
-
* @param data.granularity Data granularity
|
|
3547
|
-
* @returns PortfolioTrendsResponseDto Trends retrieved successfully
|
|
4007
|
+
* @returns CashFlowResponseDto Cash flow retrieved successfully
|
|
3548
4008
|
* @throws ApiError
|
|
3549
4009
|
*/
|
|
3550
|
-
public static
|
|
3551
|
-
data:
|
|
3552
|
-
): CancelablePromise<
|
|
4010
|
+
public static dashboardControllerGetCashFlow(
|
|
4011
|
+
data: DashboardControllerGetCashFlowData
|
|
4012
|
+
): CancelablePromise<DashboardControllerGetCashFlowResponse> {
|
|
3553
4013
|
return __request(OpenAPI, {
|
|
3554
4014
|
method: 'GET',
|
|
3555
|
-
url: '/api/v1/{region}/
|
|
4015
|
+
url: '/api/v1/{region}/dashboard/cash-flow',
|
|
3556
4016
|
path: {
|
|
3557
4017
|
region: data.region
|
|
3558
4018
|
},
|
|
3559
4019
|
query: {
|
|
3560
|
-
period: data.period
|
|
3561
|
-
granularity: data.granularity
|
|
4020
|
+
period: data.period
|
|
3562
4021
|
},
|
|
3563
4022
|
errors: {
|
|
4023
|
+
400: 'Invalid period format',
|
|
3564
4024
|
401: 'User not authenticated'
|
|
3565
4025
|
}
|
|
3566
4026
|
});
|
|
3567
4027
|
}
|
|
3568
4028
|
|
|
3569
4029
|
/**
|
|
3570
|
-
* Get
|
|
3571
|
-
*
|
|
3572
|
-
* Monthly income / expense / netSavings over a fixed N-month window
|
|
3573
|
-
* (current month + N−1 prior). Missing months are zero-filled (flow metric).
|
|
3574
|
-
*
|
|
3575
|
-
* **Parameters:**
|
|
3576
|
-
* - `period`: 1m | 3m | 6m | 1y (default 6m)
|
|
3577
|
-
* - `granularity`: accepted for API symmetry; v1 returns month buckets
|
|
3578
|
-
*
|
|
4030
|
+
* Get expenses/income grouped by functional category
|
|
4031
|
+
* Returns amounts pre-aggregated by functional category (account-path Group segment) with server-side multi-currency conversion. flow=expense (default) aggregates ^Expenses: accounts; flow=income aggregates ^Income: accounts (issue #518)
|
|
3579
4032
|
* @param data The data for the request.
|
|
3580
4033
|
* @param data.region Region code for tenant context
|
|
3581
|
-
* @param data.
|
|
3582
|
-
* @param data.
|
|
3583
|
-
* @
|
|
4034
|
+
* @param data.groupBy Grouping strategy
|
|
4035
|
+
* @param data.period Time window (1m = current calendar month)
|
|
4036
|
+
* @param data.flow Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
4037
|
+
* @returns ExpensesByCategoryResponseDto Expenses retrieved successfully
|
|
3584
4038
|
* @throws ApiError
|
|
3585
4039
|
*/
|
|
3586
|
-
public static
|
|
3587
|
-
data:
|
|
3588
|
-
): CancelablePromise<
|
|
4040
|
+
public static dashboardControllerGetExpenses(
|
|
4041
|
+
data: DashboardControllerGetExpensesData
|
|
4042
|
+
): CancelablePromise<DashboardControllerGetExpensesResponse> {
|
|
3589
4043
|
return __request(OpenAPI, {
|
|
3590
4044
|
method: 'GET',
|
|
3591
|
-
url: '/api/v1/{region}/
|
|
4045
|
+
url: '/api/v1/{region}/dashboard/expenses',
|
|
3592
4046
|
path: {
|
|
3593
4047
|
region: data.region
|
|
3594
4048
|
},
|
|
3595
4049
|
query: {
|
|
4050
|
+
groupBy: data.groupBy,
|
|
3596
4051
|
period: data.period,
|
|
3597
|
-
|
|
4052
|
+
flow: data.flow
|
|
3598
4053
|
},
|
|
3599
4054
|
errors: {
|
|
4055
|
+
400: 'Invalid groupBy or period',
|
|
3600
4056
|
401: 'User not authenticated'
|
|
3601
4057
|
}
|
|
3602
4058
|
});
|
|
3603
4059
|
}
|
|
3604
4060
|
|
|
3605
4061
|
/**
|
|
3606
|
-
*
|
|
3607
|
-
*
|
|
3608
|
-
* Manually generate a portfolio snapshot for a specific date.
|
|
3609
|
-
*
|
|
3610
|
-
* **Multi-currency Support:**
|
|
3611
|
-
* - Fetches balances grouped by currency
|
|
3612
|
-
* - Uses user's baseCurrency setting for conversion
|
|
3613
|
-
* - Stores exchange rates and warnings
|
|
3614
|
-
*
|
|
3615
|
-
* **Use Cases:**
|
|
3616
|
-
* - Testing snapshot generation
|
|
3617
|
-
* - Force regeneration after data correction
|
|
3618
|
-
* - Initial setup for new users
|
|
3619
|
-
*
|
|
4062
|
+
* Get the composite P8 advisor context
|
|
4063
|
+
* Assembles the P8 data context in one call: net worth (verbatim GET /dashboard/net-worth shape, user base currency semantics per ADR-0070), trailing-12m flow totals over the 12 calendar months including the as-of month, and top-3 expense categories by account-path leaf key — both flow blocks priced in CNY per the P8 contract. The P8 snake_case field spellings (as_of, net_worth, trailing_12m) are mapped by the consumer; the wire keeps the family camelCase
|
|
3620
4064
|
* @param data The data for the request.
|
|
3621
4065
|
* @param data.region Region code for tenant context
|
|
3622
|
-
* @param data.
|
|
3623
|
-
* @returns
|
|
4066
|
+
* @param data.date As-of date for the snapshot and the trailing-12m window anchor (ISO 8601 format)
|
|
4067
|
+
* @returns AdvisorContextResponseDto Advisor context retrieved successfully
|
|
3624
4068
|
* @throws ApiError
|
|
3625
4069
|
*/
|
|
3626
|
-
public static
|
|
3627
|
-
data:
|
|
3628
|
-
): CancelablePromise<
|
|
4070
|
+
public static dashboardControllerGetAdvisorContext(
|
|
4071
|
+
data: DashboardControllerGetAdvisorContextData
|
|
4072
|
+
): CancelablePromise<DashboardControllerGetAdvisorContextResponse> {
|
|
3629
4073
|
return __request(OpenAPI, {
|
|
3630
|
-
method: '
|
|
3631
|
-
url: '/api/v1/{region}/
|
|
4074
|
+
method: 'GET',
|
|
4075
|
+
url: '/api/v1/{region}/dashboard/advisor-context',
|
|
3632
4076
|
path: {
|
|
3633
4077
|
region: data.region
|
|
3634
4078
|
},
|
|
3635
|
-
|
|
3636
|
-
|
|
4079
|
+
query: {
|
|
4080
|
+
date: data.date
|
|
4081
|
+
},
|
|
3637
4082
|
errors: {
|
|
3638
4083
|
400: 'Invalid date format',
|
|
3639
|
-
401: 'User not authenticated'
|
|
4084
|
+
401: 'User not authenticated, or the token is not advisor-scoped (exchange via POST /auth/sessions/advisor, #1512)'
|
|
3640
4085
|
}
|
|
3641
4086
|
});
|
|
3642
4087
|
}
|
|
4088
|
+
}
|
|
3643
4089
|
|
|
4090
|
+
export class InvestmentService {
|
|
3644
4091
|
/**
|
|
3645
|
-
*
|
|
3646
|
-
*
|
|
3647
|
-
* Generate snapshots for a date range (historical data backfill).
|
|
3648
|
-
*
|
|
3649
|
-
* **Multi-currency Support:**
|
|
3650
|
-
* - Each snapshot includes multi-currency data
|
|
3651
|
-
* - Uses exchange rates available at generation time
|
|
3652
|
-
* - Warnings stored for missing exchange rates
|
|
3653
|
-
*
|
|
3654
|
-
* **Best Practices:**
|
|
3655
|
-
* - Use for initial setup after account configuration
|
|
3656
|
-
* - Run during low-traffic periods for large date ranges
|
|
3657
|
-
* - Existing snapshots are skipped (not regenerated)
|
|
3658
|
-
*
|
|
4092
|
+
* Get per-holding unrealized + realized P&L
|
|
4093
|
+
* Average-cost unrealized P&L per account × commodity, plus cumulative realized P&L on sold lots (method = FIFO | average, default average).
|
|
3659
4094
|
* @param data The data for the request.
|
|
3660
4095
|
* @param data.region Region code for tenant context
|
|
3661
|
-
* @param data.
|
|
3662
|
-
* @
|
|
4096
|
+
* @param data.asOf As-of date (ISO 8601), defaults to today
|
|
4097
|
+
* @param data.accountId Scope to a single account
|
|
4098
|
+
* @param data.method Realized-P&L lot-matching method (default average). Does not affect the average-cost unrealized basis.
|
|
4099
|
+
* @returns HoldingPnlResponseDto Holding P&L retrieved successfully
|
|
3663
4100
|
* @throws ApiError
|
|
3664
4101
|
*/
|
|
3665
|
-
public static
|
|
3666
|
-
data:
|
|
3667
|
-
): CancelablePromise<
|
|
4102
|
+
public static holdingPnlControllerGetHoldingPnl(
|
|
4103
|
+
data: HoldingPnlControllerGetHoldingPnlData
|
|
4104
|
+
): CancelablePromise<HoldingPnlControllerGetHoldingPnlResponse> {
|
|
3668
4105
|
return __request(OpenAPI, {
|
|
3669
|
-
method: '
|
|
3670
|
-
url: '/api/v1/{region}/
|
|
4106
|
+
method: 'GET',
|
|
4107
|
+
url: '/api/v1/{region}/investment/holdings/pnl',
|
|
3671
4108
|
path: {
|
|
3672
4109
|
region: data.region
|
|
3673
4110
|
},
|
|
3674
|
-
|
|
3675
|
-
|
|
4111
|
+
query: {
|
|
4112
|
+
asOf: data.asOf,
|
|
4113
|
+
accountId: data.accountId,
|
|
4114
|
+
method: data.method
|
|
4115
|
+
},
|
|
3676
4116
|
errors: {
|
|
3677
|
-
400: 'Invalid date format or
|
|
3678
|
-
401: 'User not authenticated'
|
|
3679
|
-
409: 'Backfill already in progress for this user'
|
|
4117
|
+
400: 'Invalid asOf format/value/future date, invalid accountId format, or unsupported method',
|
|
4118
|
+
401: 'User not authenticated'
|
|
3680
4119
|
}
|
|
3681
4120
|
});
|
|
3682
4121
|
}
|
|
@@ -3705,7 +4144,7 @@ export class AuthService {
|
|
|
3705
4144
|
* Anonymous login with access token
|
|
3706
4145
|
* @param data The data for the request.
|
|
3707
4146
|
* @param data.requestBody
|
|
3708
|
-
* @returns
|
|
4147
|
+
* @returns AnonymousLoginResponseDto Login successful
|
|
3709
4148
|
* @throws ApiError
|
|
3710
4149
|
*/
|
|
3711
4150
|
public static authControllerAccessTokenLogin(
|
|
@@ -3721,17 +4160,75 @@ export class AuthService {
|
|
|
3721
4160
|
}
|
|
3722
4161
|
});
|
|
3723
4162
|
}
|
|
4163
|
+
|
|
4164
|
+
/**
|
|
4165
|
+
* Exchange an access token for an advisor-scoped, short-TTL JWT (#1512)
|
|
4166
|
+
* @param data The data for the request.
|
|
4167
|
+
* @param data.requestBody
|
|
4168
|
+
* @returns AdvisorLoginResponseDto Advisor-scope login successful — the token is valid only on advisor tool-face endpoints (e.g. GET /:region/dashboard/advisor-context)
|
|
4169
|
+
* @throws ApiError
|
|
4170
|
+
*/
|
|
4171
|
+
public static authControllerAdvisorTokenLogin(
|
|
4172
|
+
data: AuthControllerAdvisorTokenLoginData
|
|
4173
|
+
): CancelablePromise<AuthControllerAdvisorTokenLoginResponse> {
|
|
4174
|
+
return __request(OpenAPI, {
|
|
4175
|
+
method: 'POST',
|
|
4176
|
+
url: '/api/v1/auth/sessions/advisor',
|
|
4177
|
+
body: data.requestBody,
|
|
4178
|
+
mediaType: 'application/json',
|
|
4179
|
+
errors: {
|
|
4180
|
+
401: 'Invalid access token'
|
|
4181
|
+
}
|
|
4182
|
+
});
|
|
4183
|
+
}
|
|
4184
|
+
}
|
|
4185
|
+
|
|
4186
|
+
export class CommunityService {
|
|
4187
|
+
/**
|
|
4188
|
+
* Relay a sanitized parser-contribution payload
|
|
4189
|
+
* A server-side bot re-sanitizes the payload and opens an issue on the target repository; the issue URL is returned. The payload is never persisted or logged (forward-and-drop).
|
|
4190
|
+
* @param data The data for the request.
|
|
4191
|
+
* @param data.region Region code for tenant context (routing only; the institution region rides in the payload meta)
|
|
4192
|
+
* @param data.requestBody
|
|
4193
|
+
* @returns ParserContributionRelayResponseDto Issue created by the bot
|
|
4194
|
+
* @throws ApiError
|
|
4195
|
+
*/
|
|
4196
|
+
public static parserContributionControllerCreate(
|
|
4197
|
+
data: ParserContributionControllerCreateData
|
|
4198
|
+
): CancelablePromise<ParserContributionControllerCreateResponse> {
|
|
4199
|
+
return __request(OpenAPI, {
|
|
4200
|
+
method: 'POST',
|
|
4201
|
+
url: '/api/v1/{region}/community/parser-contributions',
|
|
4202
|
+
path: {
|
|
4203
|
+
region: data.region
|
|
4204
|
+
},
|
|
4205
|
+
body: data.requestBody,
|
|
4206
|
+
mediaType: 'application/json',
|
|
4207
|
+
errors: {
|
|
4208
|
+
401: 'Unauthorized',
|
|
4209
|
+
422: 'Validation failed (institution slug, empty samples, row/cell size limits)',
|
|
4210
|
+
429: 'Rate limited (5 submissions per user per hour)',
|
|
4211
|
+
501: 'Relay not configured on this deployment — clients fall back to the clipboard flow',
|
|
4212
|
+
502: 'GitHub bot failure (upstream), safe to retry'
|
|
4213
|
+
}
|
|
4214
|
+
});
|
|
4215
|
+
}
|
|
3724
4216
|
}
|
|
3725
4217
|
|
|
3726
|
-
export class
|
|
4218
|
+
export class AdminCacheService {
|
|
3727
4219
|
/**
|
|
3728
|
-
*
|
|
4220
|
+
* Flush entire cache (L1 + L2)
|
|
4221
|
+
* Clears ALL cache entries across ALL namespaces and users. Use only for emergency cache corruption recovery, maintenance-window refresh, or development resets.
|
|
4222
|
+
* @returns unknown Cache flushed successfully
|
|
3729
4223
|
* @throws ApiError
|
|
3730
4224
|
*/
|
|
3731
4225
|
public static cacheControllerFlushCache(): CancelablePromise<CacheControllerFlushCacheResponse> {
|
|
3732
4226
|
return __request(OpenAPI, {
|
|
3733
4227
|
method: 'POST',
|
|
3734
|
-
url: '/api/v1/cache/flush'
|
|
4228
|
+
url: '/api/v1/cache/flush',
|
|
4229
|
+
errors: {
|
|
4230
|
+
403: 'Admin access required'
|
|
4231
|
+
}
|
|
3735
4232
|
});
|
|
3736
4233
|
}
|
|
3737
4234
|
}
|
|
@@ -3892,3 +4389,53 @@ export class InfoService {
|
|
|
3892
4389
|
});
|
|
3893
4390
|
}
|
|
3894
4391
|
}
|
|
4392
|
+
|
|
4393
|
+
export class MarketDataService {
|
|
4394
|
+
/**
|
|
4395
|
+
* Search market symbols by name or code
|
|
4396
|
+
* Ranked search over the openbb catalog. Empty `q` returns [].
|
|
4397
|
+
* @param data The data for the request.
|
|
4398
|
+
* @param data.q Search term — matched against symbol and instrument name. Empty string returns [].
|
|
4399
|
+
* @param data.limit Maximum number of results (clamped 1..50)
|
|
4400
|
+
* @param data.exchange Filter by exchange code (e.g. US, HK, SS, SZ). A-share codes also match symbol notations and venue-code aliases (exchange=SS matches SH/SHH column values and bare 6-digit Shanghai symbols; SZ likewise)
|
|
4401
|
+
* @param data.assetType Filter by OpenBB asset_type (e.g. stock, etf)
|
|
4402
|
+
* @returns SymbolSearchResultDto Ranked search results
|
|
4403
|
+
* @throws ApiError
|
|
4404
|
+
*/
|
|
4405
|
+
public static symbolControllerSearch(
|
|
4406
|
+
data: SymbolControllerSearchData
|
|
4407
|
+
): CancelablePromise<SymbolControllerSearchResponse> {
|
|
4408
|
+
return __request(OpenAPI, {
|
|
4409
|
+
method: 'GET',
|
|
4410
|
+
url: '/api/v1/market/symbols/search',
|
|
4411
|
+
query: {
|
|
4412
|
+
q: data.q,
|
|
4413
|
+
limit: data.limit,
|
|
4414
|
+
exchange: data.exchange,
|
|
4415
|
+
assetType: data.assetType
|
|
4416
|
+
}
|
|
4417
|
+
});
|
|
4418
|
+
}
|
|
4419
|
+
|
|
4420
|
+
/**
|
|
4421
|
+
* Get a market symbol quote
|
|
4422
|
+
* @param data The data for the request.
|
|
4423
|
+
* @param data.symbol
|
|
4424
|
+
* @returns SymbolQuoteDto Symbol quote
|
|
4425
|
+
* @throws ApiError
|
|
4426
|
+
*/
|
|
4427
|
+
public static symbolControllerGetQuote(
|
|
4428
|
+
data: SymbolControllerGetQuoteData
|
|
4429
|
+
): CancelablePromise<SymbolControllerGetQuoteResponse> {
|
|
4430
|
+
return __request(OpenAPI, {
|
|
4431
|
+
method: 'GET',
|
|
4432
|
+
url: '/api/v1/market/symbols/{symbol}/quote',
|
|
4433
|
+
path: {
|
|
4434
|
+
symbol: data.symbol
|
|
4435
|
+
},
|
|
4436
|
+
errors: {
|
|
4437
|
+
404: 'Symbol not found in the openbb catalog'
|
|
4438
|
+
}
|
|
4439
|
+
});
|
|
4440
|
+
}
|
|
4441
|
+
}
|