@firela/api-types 0.0.0-canary.5c1ed455 → 0.0.0-canary.5fa96f73
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 +555 -48
- package/dist/index.d.ts +555 -48
- package/dist/index.js +3 -1
- package/dist/index.mjs +3 -1
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +501 -73
- package/src/generated/services.gen.ts +262 -1
- package/src/generated/types.gen.ts +585 -50
|
@@ -848,6 +848,51 @@ export type flag2 =
|
|
|
848
848
|
*/
|
|
849
849
|
export type status2 = 'ACTIVE' | 'VOIDED' | 'SUPERSEDED';
|
|
850
850
|
|
|
851
|
+
export type BalanceByCurrencyDto = {
|
|
852
|
+
/**
|
|
853
|
+
* ISO 4217 currency code
|
|
854
|
+
*/
|
|
855
|
+
currency: string;
|
|
856
|
+
/**
|
|
857
|
+
* Balance amount
|
|
858
|
+
*/
|
|
859
|
+
balance: string;
|
|
860
|
+
};
|
|
861
|
+
|
|
862
|
+
export type ExchangeRateWarningDto = {
|
|
863
|
+
/**
|
|
864
|
+
* Warning type
|
|
865
|
+
*/
|
|
866
|
+
type: string;
|
|
867
|
+
/**
|
|
868
|
+
* Currency without exchange rate
|
|
869
|
+
*/
|
|
870
|
+
currency: string;
|
|
871
|
+
/**
|
|
872
|
+
* Total amount affected
|
|
873
|
+
*/
|
|
874
|
+
totalAmount: string;
|
|
875
|
+
};
|
|
876
|
+
|
|
877
|
+
export type TransactionListSummaryDto = {
|
|
878
|
+
/**
|
|
879
|
+
* Partial converted total in base currency (rated currencies only, raw Beancount sign). When warnings is non-empty this excludes currencies missing an FX rate; may be "0.00" if ALL non-base currencies lack a rate. Converted at the dateTo (or current) available rate.
|
|
880
|
+
*/
|
|
881
|
+
totalAmount: string;
|
|
882
|
+
/**
|
|
883
|
+
* Base currency (ISO 4217)
|
|
884
|
+
*/
|
|
885
|
+
currency: string;
|
|
886
|
+
/**
|
|
887
|
+
* Raw (unconverted) balance per currency
|
|
888
|
+
*/
|
|
889
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
890
|
+
/**
|
|
891
|
+
* Currencies missing an FX rate (omitted when empty)
|
|
892
|
+
*/
|
|
893
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
894
|
+
};
|
|
895
|
+
|
|
851
896
|
export type TransactionListResponseDto = {
|
|
852
897
|
/**
|
|
853
898
|
* List of transactions
|
|
@@ -865,6 +910,10 @@ export type TransactionListResponseDto = {
|
|
|
865
910
|
* Number of items skipped
|
|
866
911
|
*/
|
|
867
912
|
offset: number;
|
|
913
|
+
/**
|
|
914
|
+
* Amount summary for the full filtered set (#514). Present only when the request has a single account OR category viewpoint; omitted for search-only / plain-list / dual-perspective requests.
|
|
915
|
+
*/
|
|
916
|
+
summary?: TransactionListSummaryDto;
|
|
868
917
|
};
|
|
869
918
|
|
|
870
919
|
export type TagSuggestionDto = {
|
|
@@ -1324,17 +1373,17 @@ export type ResolveResultDto = {
|
|
|
1324
1373
|
[key: string]: string;
|
|
1325
1374
|
};
|
|
1326
1375
|
/**
|
|
1327
|
-
* Resolution ID for undo
|
|
1376
|
+
* Resolution ID for undo. Absent when the resolver rejected the decision (review stayed PENDING).
|
|
1328
1377
|
*/
|
|
1329
|
-
resolutionId
|
|
1378
|
+
resolutionId?: string;
|
|
1330
1379
|
/**
|
|
1331
1380
|
* Whether this decision can be undone
|
|
1332
1381
|
*/
|
|
1333
|
-
canUndo
|
|
1382
|
+
canUndo?: boolean;
|
|
1334
1383
|
/**
|
|
1335
1384
|
* Deadline for undo (24h from resolution)
|
|
1336
1385
|
*/
|
|
1337
|
-
undoDeadline
|
|
1386
|
+
undoDeadline?: string;
|
|
1338
1387
|
/**
|
|
1339
1388
|
* Rule ID if learning was triggered (ACCEPT_AND_LEARN actions). Use this to deep-link to the rule management page.
|
|
1340
1389
|
*/
|
|
@@ -3029,6 +3078,96 @@ export type UpdatePropertyDto = {
|
|
|
3029
3078
|
value: string;
|
|
3030
3079
|
};
|
|
3031
3080
|
|
|
3081
|
+
export type CreateBeanEventDto = {
|
|
3082
|
+
/**
|
|
3083
|
+
* Life event date (ISO 8601)
|
|
3084
|
+
*/
|
|
3085
|
+
date: string;
|
|
3086
|
+
/**
|
|
3087
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
3088
|
+
*/
|
|
3089
|
+
type: string;
|
|
3090
|
+
/**
|
|
3091
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3092
|
+
*/
|
|
3093
|
+
description: string;
|
|
3094
|
+
/**
|
|
3095
|
+
* Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
|
|
3096
|
+
*/
|
|
3097
|
+
meta?: {
|
|
3098
|
+
[key: string]: unknown;
|
|
3099
|
+
};
|
|
3100
|
+
};
|
|
3101
|
+
|
|
3102
|
+
export type EventResponseDto = {
|
|
3103
|
+
/**
|
|
3104
|
+
* Unique identifier
|
|
3105
|
+
*/
|
|
3106
|
+
id: string;
|
|
3107
|
+
/**
|
|
3108
|
+
* User ID (owner of the life event)
|
|
3109
|
+
*/
|
|
3110
|
+
userId: string;
|
|
3111
|
+
/**
|
|
3112
|
+
* Life event date (ISO 8601 format)
|
|
3113
|
+
*/
|
|
3114
|
+
date: string;
|
|
3115
|
+
/**
|
|
3116
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3117
|
+
*/
|
|
3118
|
+
type: string;
|
|
3119
|
+
/**
|
|
3120
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3121
|
+
*/
|
|
3122
|
+
description: string;
|
|
3123
|
+
/**
|
|
3124
|
+
* Product-side metadata (free-form JSON)
|
|
3125
|
+
*/
|
|
3126
|
+
meta: {
|
|
3127
|
+
[key: string]: unknown;
|
|
3128
|
+
};
|
|
3129
|
+
/**
|
|
3130
|
+
* Creation timestamp
|
|
3131
|
+
*/
|
|
3132
|
+
createdAt: string;
|
|
3133
|
+
/**
|
|
3134
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3135
|
+
*/
|
|
3136
|
+
updatedAt: string;
|
|
3137
|
+
};
|
|
3138
|
+
|
|
3139
|
+
export type EventListResponseDto = {
|
|
3140
|
+
/**
|
|
3141
|
+
* List of life events
|
|
3142
|
+
*/
|
|
3143
|
+
items: Array<EventResponseDto>;
|
|
3144
|
+
/**
|
|
3145
|
+
* Total number of life events matching the query
|
|
3146
|
+
*/
|
|
3147
|
+
total: number;
|
|
3148
|
+
};
|
|
3149
|
+
|
|
3150
|
+
export type UpdateBeanEventDto = {
|
|
3151
|
+
/**
|
|
3152
|
+
* Life event date (ISO 8601)
|
|
3153
|
+
*/
|
|
3154
|
+
date?: string;
|
|
3155
|
+
/**
|
|
3156
|
+
* Life event type (user-defined)
|
|
3157
|
+
*/
|
|
3158
|
+
type?: string;
|
|
3159
|
+
/**
|
|
3160
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3161
|
+
*/
|
|
3162
|
+
description?: string;
|
|
3163
|
+
/**
|
|
3164
|
+
* Product-side metadata (free-form JSON)
|
|
3165
|
+
*/
|
|
3166
|
+
meta?: {
|
|
3167
|
+
[key: string]: unknown;
|
|
3168
|
+
};
|
|
3169
|
+
};
|
|
3170
|
+
|
|
3032
3171
|
export type FileImportDto = {
|
|
3033
3172
|
/**
|
|
3034
3173
|
* Bill file to import (CSV, PDF, OFX, etc.)
|
|
@@ -4070,17 +4209,6 @@ export type liabilitySubType = 'borrow' | 'repay';
|
|
|
4070
4209
|
*/
|
|
4071
4210
|
export type equitySubType = 'opening' | 'adjustment';
|
|
4072
4211
|
|
|
4073
|
-
export type BalanceByCurrencyDto = {
|
|
4074
|
-
/**
|
|
4075
|
-
* ISO 4217 currency code
|
|
4076
|
-
*/
|
|
4077
|
-
currency: string;
|
|
4078
|
-
/**
|
|
4079
|
-
* Balance amount
|
|
4080
|
-
*/
|
|
4081
|
-
balance: string;
|
|
4082
|
-
};
|
|
4083
|
-
|
|
4084
4212
|
export type NetWorthByCurrencyDto = {
|
|
4085
4213
|
/**
|
|
4086
4214
|
* Net worth by currency
|
|
@@ -4121,21 +4249,6 @@ export type ConvertedNetWorthDto = {
|
|
|
4121
4249
|
};
|
|
4122
4250
|
};
|
|
4123
4251
|
|
|
4124
|
-
export type ExchangeRateWarningDto = {
|
|
4125
|
-
/**
|
|
4126
|
-
* Warning type
|
|
4127
|
-
*/
|
|
4128
|
-
type: string;
|
|
4129
|
-
/**
|
|
4130
|
-
* Currency without exchange rate
|
|
4131
|
-
*/
|
|
4132
|
-
currency: string;
|
|
4133
|
-
/**
|
|
4134
|
-
* Total amount affected
|
|
4135
|
-
*/
|
|
4136
|
-
totalAmount: string;
|
|
4137
|
-
};
|
|
4138
|
-
|
|
4139
4252
|
export type NetWorthResponseDto = {
|
|
4140
4253
|
/**
|
|
4141
4254
|
* Total net worth (assets - liabilities, converted to base currency)
|
|
@@ -4216,9 +4329,40 @@ export type PlatformGroupDto = {
|
|
|
4216
4329
|
*/
|
|
4217
4330
|
accounts: Array<AccountItemDto>;
|
|
4218
4331
|
/**
|
|
4219
|
-
*
|
|
4332
|
+
* FX-converted total balance in base currency
|
|
4220
4333
|
*/
|
|
4221
4334
|
totalBalance: string;
|
|
4335
|
+
/**
|
|
4336
|
+
* Raw (unconverted) balances grouped by currency
|
|
4337
|
+
*/
|
|
4338
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4339
|
+
/**
|
|
4340
|
+
* Converted balance in base currency (omitted when no currency is convertible)
|
|
4341
|
+
*/
|
|
4342
|
+
convertedBalance?: string;
|
|
4343
|
+
/**
|
|
4344
|
+
* Share of the grand converted total (0-100); 0 when grand total is 0
|
|
4345
|
+
*/
|
|
4346
|
+
sharePct: number;
|
|
4347
|
+
};
|
|
4348
|
+
|
|
4349
|
+
export type AccountExchangeRateWarningDto = {
|
|
4350
|
+
/**
|
|
4351
|
+
* Warning type
|
|
4352
|
+
*/
|
|
4353
|
+
type: string;
|
|
4354
|
+
/**
|
|
4355
|
+
* Currency without exchange rate
|
|
4356
|
+
*/
|
|
4357
|
+
currency: string;
|
|
4358
|
+
/**
|
|
4359
|
+
* Affected account paths
|
|
4360
|
+
*/
|
|
4361
|
+
accounts: Array<string>;
|
|
4362
|
+
/**
|
|
4363
|
+
* Total amount in this currency
|
|
4364
|
+
*/
|
|
4365
|
+
totalAmount: string;
|
|
4222
4366
|
};
|
|
4223
4367
|
|
|
4224
4368
|
export type AccountsSummaryDto = {
|
|
@@ -4230,6 +4374,14 @@ export type AccountsSummaryDto = {
|
|
|
4230
4374
|
* Total number of platforms
|
|
4231
4375
|
*/
|
|
4232
4376
|
totalPlatforms: number;
|
|
4377
|
+
/**
|
|
4378
|
+
* Base currency for conversion
|
|
4379
|
+
*/
|
|
4380
|
+
baseCurrency: string;
|
|
4381
|
+
/**
|
|
4382
|
+
* Per-account exchange rate warnings
|
|
4383
|
+
*/
|
|
4384
|
+
warnings?: Array<AccountExchangeRateWarningDto>;
|
|
4233
4385
|
};
|
|
4234
4386
|
|
|
4235
4387
|
export type AccountsResponseDto = {
|
|
@@ -4345,25 +4497,6 @@ export type assetClass =
|
|
|
4345
4497
|
| 'REAL_ESTATE'
|
|
4346
4498
|
| 'INDEX';
|
|
4347
4499
|
|
|
4348
|
-
export type AccountExchangeRateWarningDto = {
|
|
4349
|
-
/**
|
|
4350
|
-
* Warning type
|
|
4351
|
-
*/
|
|
4352
|
-
type: string;
|
|
4353
|
-
/**
|
|
4354
|
-
* Currency without exchange rate
|
|
4355
|
-
*/
|
|
4356
|
-
currency: string;
|
|
4357
|
-
/**
|
|
4358
|
-
* Affected account paths
|
|
4359
|
-
*/
|
|
4360
|
-
accounts: Array<string>;
|
|
4361
|
-
/**
|
|
4362
|
-
* Total amount in this currency
|
|
4363
|
-
*/
|
|
4364
|
-
totalAmount: string;
|
|
4365
|
-
};
|
|
4366
|
-
|
|
4367
4500
|
export type AssetClassSummaryDto = {
|
|
4368
4501
|
/**
|
|
4369
4502
|
* Total number of accounts
|
|
@@ -4529,6 +4662,63 @@ export type CashFlowResponseDto = {
|
|
|
4529
4662
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4530
4663
|
};
|
|
4531
4664
|
|
|
4665
|
+
export type CategoryGroupDto = {
|
|
4666
|
+
/**
|
|
4667
|
+
* Functional category (account-path Group segment); regional and universal account paths merge under it
|
|
4668
|
+
*/
|
|
4669
|
+
category: string;
|
|
4670
|
+
/**
|
|
4671
|
+
* Converted total for this category in base currency (expense amount when flow=expense, income amount when flow=income)
|
|
4672
|
+
*/
|
|
4673
|
+
totalExpense: string;
|
|
4674
|
+
/**
|
|
4675
|
+
* Share of grand total (0-100); 0 when grand total is 0
|
|
4676
|
+
*/
|
|
4677
|
+
sharePct: number;
|
|
4678
|
+
/**
|
|
4679
|
+
* Raw (unconverted) expense per currency
|
|
4680
|
+
*/
|
|
4681
|
+
balanceByCurrency: Array<BalanceByCurrencyDto>;
|
|
4682
|
+
/**
|
|
4683
|
+
* Converted total in base currency (omitted when FX missing for all currencies in this category)
|
|
4684
|
+
*/
|
|
4685
|
+
convertedBalance?: string;
|
|
4686
|
+
};
|
|
4687
|
+
|
|
4688
|
+
export type ExpensesByCategorySummaryDto = {
|
|
4689
|
+
/**
|
|
4690
|
+
* Total across all categories, converted (convertible categories only); expense totals when flow=expense, income totals when flow=income
|
|
4691
|
+
*/
|
|
4692
|
+
totalExpense: string;
|
|
4693
|
+
/**
|
|
4694
|
+
* Number of categories
|
|
4695
|
+
*/
|
|
4696
|
+
categoryCount: number;
|
|
4697
|
+
};
|
|
4698
|
+
|
|
4699
|
+
export type ExpensesByCategoryResponseDto = {
|
|
4700
|
+
/**
|
|
4701
|
+
* Period requested
|
|
4702
|
+
*/
|
|
4703
|
+
period: string;
|
|
4704
|
+
/**
|
|
4705
|
+
* Base currency for converted values
|
|
4706
|
+
*/
|
|
4707
|
+
baseCurrency: string;
|
|
4708
|
+
/**
|
|
4709
|
+
* Expense groups by functional category, sorted by converted total desc
|
|
4710
|
+
*/
|
|
4711
|
+
groups: Array<CategoryGroupDto>;
|
|
4712
|
+
/**
|
|
4713
|
+
* Summary statistics
|
|
4714
|
+
*/
|
|
4715
|
+
summary: ExpensesByCategorySummaryDto;
|
|
4716
|
+
/**
|
|
4717
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
4718
|
+
*/
|
|
4719
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
4720
|
+
};
|
|
4721
|
+
|
|
4532
4722
|
export type MonetaryDto = {
|
|
4533
4723
|
/**
|
|
4534
4724
|
* Amount (Decimal string)
|
|
@@ -4852,6 +5042,14 @@ export type TimeSeriesPointDto = {
|
|
|
4852
5042
|
change?: {
|
|
4853
5043
|
[key: string]: unknown;
|
|
4854
5044
|
};
|
|
5045
|
+
/**
|
|
5046
|
+
* Total assets at this date (in base currency)
|
|
5047
|
+
*/
|
|
5048
|
+
assets?: string;
|
|
5049
|
+
/**
|
|
5050
|
+
* Total liabilities at this date (in base currency)
|
|
5051
|
+
*/
|
|
5052
|
+
liabilities?: string;
|
|
4855
5053
|
/**
|
|
4856
5054
|
* Multi-currency breakdown for this point
|
|
4857
5055
|
*/
|
|
@@ -4919,6 +5117,71 @@ export type PortfolioTrendsResponseDto = {
|
|
|
4919
5117
|
warnings?: Array<ExchangeRateWarningDto>;
|
|
4920
5118
|
};
|
|
4921
5119
|
|
|
5120
|
+
export type CashFlowPointDto = {
|
|
5121
|
+
/**
|
|
5122
|
+
* Month key (YYYY-MM)
|
|
5123
|
+
*/
|
|
5124
|
+
month: string;
|
|
5125
|
+
/**
|
|
5126
|
+
* Income in base currency (absolute, converted)
|
|
5127
|
+
*/
|
|
5128
|
+
income: string;
|
|
5129
|
+
/**
|
|
5130
|
+
* Expense in base currency (absolute, converted)
|
|
5131
|
+
*/
|
|
5132
|
+
expense: string;
|
|
5133
|
+
/**
|
|
5134
|
+
* netSavings = income − expense (savings positive)
|
|
5135
|
+
*/
|
|
5136
|
+
netSavings: string;
|
|
5137
|
+
};
|
|
5138
|
+
|
|
5139
|
+
export type CashFlowTrendSummaryDto = {
|
|
5140
|
+
/**
|
|
5141
|
+
* Total income across the period
|
|
5142
|
+
*/
|
|
5143
|
+
totalIncome: string;
|
|
5144
|
+
/**
|
|
5145
|
+
* Total expense across the period
|
|
5146
|
+
*/
|
|
5147
|
+
totalExpense: string;
|
|
5148
|
+
/**
|
|
5149
|
+
* income − expense across the period
|
|
5150
|
+
*/
|
|
5151
|
+
totalNetSavings: string;
|
|
5152
|
+
/**
|
|
5153
|
+
* totalNetSavings divided by the window length (N months, incl. zero-filled)
|
|
5154
|
+
*/
|
|
5155
|
+
averageMonthlyNetSavings: string;
|
|
5156
|
+
};
|
|
5157
|
+
|
|
5158
|
+
export type CashFlowTrendsResponseDto = {
|
|
5159
|
+
/**
|
|
5160
|
+
* Monthly cash-flow series (fixed N-month window, zero-filled)
|
|
5161
|
+
*/
|
|
5162
|
+
series: Array<CashFlowPointDto>;
|
|
5163
|
+
/**
|
|
5164
|
+
* Period totals
|
|
5165
|
+
*/
|
|
5166
|
+
summary: CashFlowTrendSummaryDto;
|
|
5167
|
+
/**
|
|
5168
|
+
* Period requested
|
|
5169
|
+
*/
|
|
5170
|
+
period: string;
|
|
5171
|
+
/**
|
|
5172
|
+
* Data granularity (v1 returns month buckets)
|
|
5173
|
+
*/
|
|
5174
|
+
granularity: string;
|
|
5175
|
+
/**
|
|
5176
|
+
* Base currency for converted values
|
|
5177
|
+
*/
|
|
5178
|
+
currency: string;
|
|
5179
|
+
/**
|
|
5180
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
5181
|
+
*/
|
|
5182
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
5183
|
+
};
|
|
5184
|
+
|
|
4922
5185
|
export type GenerateSnapshotBody = unknown;
|
|
4923
5186
|
|
|
4924
5187
|
export type GenerateSnapshotResponse = unknown;
|
|
@@ -5105,6 +5368,10 @@ export type TransactionControllerListData = {
|
|
|
5105
5368
|
* Filter by account ID (transactions with postings to this account)
|
|
5106
5369
|
*/
|
|
5107
5370
|
accountId?: string;
|
|
5371
|
+
/**
|
|
5372
|
+
* Filter by ADR-0075 functional category (Group segment); matches any posting to an Expenses/Income account whose derived Group segment equals this value
|
|
5373
|
+
*/
|
|
5374
|
+
category?: string;
|
|
5108
5375
|
/**
|
|
5109
5376
|
* Filter by start date (inclusive), format: YYYY-MM-DD
|
|
5110
5377
|
*/
|
|
@@ -6096,6 +6363,104 @@ export type PropertyControllerDeleteData = {
|
|
|
6096
6363
|
|
|
6097
6364
|
export type PropertyControllerDeleteResponse = void;
|
|
6098
6365
|
|
|
6366
|
+
export type EventControllerCreateData = {
|
|
6367
|
+
/**
|
|
6368
|
+
* Region code for tenant context (decorative for life events)
|
|
6369
|
+
*/
|
|
6370
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6371
|
+
requestBody: CreateBeanEventDto;
|
|
6372
|
+
};
|
|
6373
|
+
|
|
6374
|
+
export type EventControllerCreateResponse = EventResponseDto;
|
|
6375
|
+
|
|
6376
|
+
export type EventControllerFindAllData = {
|
|
6377
|
+
/**
|
|
6378
|
+
* Filter life events from this date (ISO 8601 format)
|
|
6379
|
+
*/
|
|
6380
|
+
from?: string;
|
|
6381
|
+
/**
|
|
6382
|
+
* Number of items per page (default: 20, max: 100)
|
|
6383
|
+
*/
|
|
6384
|
+
limit?: number;
|
|
6385
|
+
/**
|
|
6386
|
+
* Page number for pagination (default: 1)
|
|
6387
|
+
*/
|
|
6388
|
+
page?: number;
|
|
6389
|
+
/**
|
|
6390
|
+
* Search term for description (case-insensitive partial match)
|
|
6391
|
+
*/
|
|
6392
|
+
q?: string;
|
|
6393
|
+
/**
|
|
6394
|
+
* Region code for tenant context (decorative for life events)
|
|
6395
|
+
*/
|
|
6396
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6397
|
+
/**
|
|
6398
|
+
* Filter life events to this date (ISO 8601 format)
|
|
6399
|
+
*/
|
|
6400
|
+
to?: string;
|
|
6401
|
+
/**
|
|
6402
|
+
* Filter by life event type (exact match)
|
|
6403
|
+
*/
|
|
6404
|
+
type?: string;
|
|
6405
|
+
};
|
|
6406
|
+
|
|
6407
|
+
export type EventControllerFindAllResponse = EventListResponseDto;
|
|
6408
|
+
|
|
6409
|
+
export type EventControllerFindOneData = {
|
|
6410
|
+
/**
|
|
6411
|
+
* Life event ID
|
|
6412
|
+
*/
|
|
6413
|
+
id: string;
|
|
6414
|
+
/**
|
|
6415
|
+
* Region code for tenant context (decorative for life events)
|
|
6416
|
+
*/
|
|
6417
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6418
|
+
};
|
|
6419
|
+
|
|
6420
|
+
export type EventControllerFindOneResponse = EventResponseDto;
|
|
6421
|
+
|
|
6422
|
+
export type EventControllerUpdateData = {
|
|
6423
|
+
/**
|
|
6424
|
+
* Life event ID
|
|
6425
|
+
*/
|
|
6426
|
+
id: string;
|
|
6427
|
+
/**
|
|
6428
|
+
* Region code for tenant context (decorative for life events)
|
|
6429
|
+
*/
|
|
6430
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6431
|
+
requestBody: UpdateBeanEventDto;
|
|
6432
|
+
};
|
|
6433
|
+
|
|
6434
|
+
export type EventControllerUpdateResponse = EventResponseDto;
|
|
6435
|
+
|
|
6436
|
+
export type EventControllerDeleteData = {
|
|
6437
|
+
/**
|
|
6438
|
+
* Life event ID
|
|
6439
|
+
*/
|
|
6440
|
+
id: string;
|
|
6441
|
+
/**
|
|
6442
|
+
* Region code for tenant context (decorative for life events)
|
|
6443
|
+
*/
|
|
6444
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6445
|
+
};
|
|
6446
|
+
|
|
6447
|
+
export type EventControllerDeleteResponse = void;
|
|
6448
|
+
|
|
6449
|
+
export type EventControllerGetSliceData = {
|
|
6450
|
+
accountPattern: string;
|
|
6451
|
+
granularity: string;
|
|
6452
|
+
/**
|
|
6453
|
+
* Life event ID
|
|
6454
|
+
*/
|
|
6455
|
+
id: string;
|
|
6456
|
+
/**
|
|
6457
|
+
* Region code for tenant context (decorative for life events)
|
|
6458
|
+
*/
|
|
6459
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6460
|
+
};
|
|
6461
|
+
|
|
6462
|
+
export type EventControllerGetSliceResponse = unknown;
|
|
6463
|
+
|
|
6099
6464
|
export type ExportControllerExportBeancountResponse = unknown;
|
|
6100
6465
|
|
|
6101
6466
|
export type FileImportControllerImportFileData = {
|
|
@@ -6401,6 +6766,28 @@ export type DashboardControllerGetCashFlowData = {
|
|
|
6401
6766
|
|
|
6402
6767
|
export type DashboardControllerGetCashFlowResponse = CashFlowResponseDto;
|
|
6403
6768
|
|
|
6769
|
+
export type DashboardControllerGetExpensesData = {
|
|
6770
|
+
/**
|
|
6771
|
+
* Account root to aggregate (expense → ^Expenses:, income → ^Income:)
|
|
6772
|
+
*/
|
|
6773
|
+
flow?: 'expense' | 'income';
|
|
6774
|
+
/**
|
|
6775
|
+
* Grouping strategy
|
|
6776
|
+
*/
|
|
6777
|
+
groupBy?: 'category';
|
|
6778
|
+
/**
|
|
6779
|
+
* Time window (1m = current calendar month)
|
|
6780
|
+
*/
|
|
6781
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6782
|
+
/**
|
|
6783
|
+
* Region code for tenant context
|
|
6784
|
+
*/
|
|
6785
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6786
|
+
};
|
|
6787
|
+
|
|
6788
|
+
export type DashboardControllerGetExpensesResponse =
|
|
6789
|
+
ExpensesByCategoryResponseDto;
|
|
6790
|
+
|
|
6404
6791
|
export type HoldingPnlControllerGetHoldingPnlData = {
|
|
6405
6792
|
/**
|
|
6406
6793
|
* Scope to a single account
|
|
@@ -6537,6 +6924,24 @@ export type ReportingControllerGetPortfolioTrendsData = {
|
|
|
6537
6924
|
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
6538
6925
|
PortfolioTrendsResponseDto;
|
|
6539
6926
|
|
|
6927
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6928
|
+
/**
|
|
6929
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6930
|
+
*/
|
|
6931
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6932
|
+
/**
|
|
6933
|
+
* Time period
|
|
6934
|
+
*/
|
|
6935
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6936
|
+
/**
|
|
6937
|
+
* Region code for tenant context
|
|
6938
|
+
*/
|
|
6939
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6940
|
+
};
|
|
6941
|
+
|
|
6942
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
6943
|
+
CashFlowTrendsResponseDto;
|
|
6944
|
+
|
|
6540
6945
|
export type ReportingControllerGenerateSnapshotData = {
|
|
6541
6946
|
/**
|
|
6542
6947
|
* Region code for tenant context
|
|
@@ -7968,6 +8373,102 @@ export type $OpenApiTs = {
|
|
|
7968
8373
|
};
|
|
7969
8374
|
};
|
|
7970
8375
|
};
|
|
8376
|
+
'/api/v1/{region}/bean/events': {
|
|
8377
|
+
post: {
|
|
8378
|
+
req: EventControllerCreateData;
|
|
8379
|
+
res: {
|
|
8380
|
+
/**
|
|
8381
|
+
* Life event created successfully
|
|
8382
|
+
*/
|
|
8383
|
+
201: EventResponseDto;
|
|
8384
|
+
/**
|
|
8385
|
+
* Life event already exists for this (userId, type, date) combination
|
|
8386
|
+
*/
|
|
8387
|
+
409: unknown;
|
|
8388
|
+
};
|
|
8389
|
+
};
|
|
8390
|
+
get: {
|
|
8391
|
+
req: EventControllerFindAllData;
|
|
8392
|
+
res: {
|
|
8393
|
+
/**
|
|
8394
|
+
* Life events retrieved successfully
|
|
8395
|
+
*/
|
|
8396
|
+
200: EventListResponseDto;
|
|
8397
|
+
};
|
|
8398
|
+
};
|
|
8399
|
+
};
|
|
8400
|
+
'/api/v1/{region}/bean/events/{id}': {
|
|
8401
|
+
get: {
|
|
8402
|
+
req: EventControllerFindOneData;
|
|
8403
|
+
res: {
|
|
8404
|
+
/**
|
|
8405
|
+
* Life event retrieved successfully
|
|
8406
|
+
*/
|
|
8407
|
+
200: EventResponseDto;
|
|
8408
|
+
/**
|
|
8409
|
+
* Life event not found
|
|
8410
|
+
*/
|
|
8411
|
+
404: unknown;
|
|
8412
|
+
};
|
|
8413
|
+
};
|
|
8414
|
+
put: {
|
|
8415
|
+
req: EventControllerUpdateData;
|
|
8416
|
+
res: {
|
|
8417
|
+
/**
|
|
8418
|
+
* Life event updated successfully
|
|
8419
|
+
*/
|
|
8420
|
+
200: EventResponseDto;
|
|
8421
|
+
/**
|
|
8422
|
+
* If-Match header is not a valid ISO 8601 date
|
|
8423
|
+
*/
|
|
8424
|
+
400: unknown;
|
|
8425
|
+
/**
|
|
8426
|
+
* Life event not found
|
|
8427
|
+
*/
|
|
8428
|
+
404: unknown;
|
|
8429
|
+
/**
|
|
8430
|
+
* Updated event conflicts with an existing (userId, type, date) combination
|
|
8431
|
+
*/
|
|
8432
|
+
409: unknown;
|
|
8433
|
+
/**
|
|
8434
|
+
* If-Match precondition failed (updatedAt mismatch)
|
|
8435
|
+
*/
|
|
8436
|
+
412: unknown;
|
|
8437
|
+
};
|
|
8438
|
+
};
|
|
8439
|
+
delete: {
|
|
8440
|
+
req: EventControllerDeleteData;
|
|
8441
|
+
res: {
|
|
8442
|
+
/**
|
|
8443
|
+
* Life event deleted successfully
|
|
8444
|
+
*/
|
|
8445
|
+
204: void;
|
|
8446
|
+
/**
|
|
8447
|
+
* Life event not found
|
|
8448
|
+
*/
|
|
8449
|
+
404: unknown;
|
|
8450
|
+
};
|
|
8451
|
+
};
|
|
8452
|
+
};
|
|
8453
|
+
'/api/v1/{region}/bean/events/{id}/slice': {
|
|
8454
|
+
get: {
|
|
8455
|
+
req: EventControllerGetSliceData;
|
|
8456
|
+
res: {
|
|
8457
|
+
/**
|
|
8458
|
+
* Time-series sliced by the life event range
|
|
8459
|
+
*/
|
|
8460
|
+
200: unknown;
|
|
8461
|
+
/**
|
|
8462
|
+
* accountPattern query param is empty
|
|
8463
|
+
*/
|
|
8464
|
+
400: unknown;
|
|
8465
|
+
/**
|
|
8466
|
+
* Life event not found
|
|
8467
|
+
*/
|
|
8468
|
+
404: unknown;
|
|
8469
|
+
};
|
|
8470
|
+
};
|
|
8471
|
+
};
|
|
7971
8472
|
'/api/v1/{region}/bean/export/beancount': {
|
|
7972
8473
|
get: {
|
|
7973
8474
|
res: {
|
|
@@ -8383,6 +8884,25 @@ export type $OpenApiTs = {
|
|
|
8383
8884
|
};
|
|
8384
8885
|
};
|
|
8385
8886
|
};
|
|
8887
|
+
'/api/v1/{region}/dashboard/expenses': {
|
|
8888
|
+
get: {
|
|
8889
|
+
req: DashboardControllerGetExpensesData;
|
|
8890
|
+
res: {
|
|
8891
|
+
/**
|
|
8892
|
+
* Expenses retrieved successfully
|
|
8893
|
+
*/
|
|
8894
|
+
200: ExpensesByCategoryResponseDto;
|
|
8895
|
+
/**
|
|
8896
|
+
* Invalid groupBy or period
|
|
8897
|
+
*/
|
|
8898
|
+
400: unknown;
|
|
8899
|
+
/**
|
|
8900
|
+
* User not authenticated
|
|
8901
|
+
*/
|
|
8902
|
+
401: unknown;
|
|
8903
|
+
};
|
|
8904
|
+
};
|
|
8905
|
+
};
|
|
8386
8906
|
'/api/v1/{region}/investment/holdings/pnl': {
|
|
8387
8907
|
get: {
|
|
8388
8908
|
req: HoldingPnlControllerGetHoldingPnlData;
|
|
@@ -8501,6 +9021,21 @@ export type $OpenApiTs = {
|
|
|
8501
9021
|
};
|
|
8502
9022
|
};
|
|
8503
9023
|
};
|
|
9024
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
9025
|
+
get: {
|
|
9026
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
9027
|
+
res: {
|
|
9028
|
+
/**
|
|
9029
|
+
* Cash-flow trends retrieved successfully
|
|
9030
|
+
*/
|
|
9031
|
+
200: CashFlowTrendsResponseDto;
|
|
9032
|
+
/**
|
|
9033
|
+
* User not authenticated
|
|
9034
|
+
*/
|
|
9035
|
+
401: unknown;
|
|
9036
|
+
};
|
|
9037
|
+
};
|
|
9038
|
+
};
|
|
8504
9039
|
'/api/v1/{region}/reporting/snapshots/generate': {
|
|
8505
9040
|
post: {
|
|
8506
9041
|
req: ReportingControllerGenerateSnapshotData;
|