@firela/api-types 0.0.0-canary.2d71872c → 0.0.0-canary.2e2a26ba
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 +1112 -841
- package/dist/index.d.ts +1112 -841
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +926 -613
- package/src/generated/services.gen.ts +496 -442
- package/src/generated/types.gen.ts +1276 -917
|
@@ -73,6 +73,43 @@ export type AccountResponseDto = {
|
|
|
73
73
|
* Account type (root segment)
|
|
74
74
|
*/
|
|
75
75
|
type: 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
|
|
76
|
+
/**
|
|
77
|
+
* Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
|
|
78
|
+
*/
|
|
79
|
+
assetSubClass?:
|
|
80
|
+
| 'DEPOSIT'
|
|
81
|
+
| 'CASH'
|
|
82
|
+
| 'MONEY_MARKET_FUND'
|
|
83
|
+
| 'STOCK'
|
|
84
|
+
| 'ETF'
|
|
85
|
+
| 'MUTUAL_FUND'
|
|
86
|
+
| 'EQUITY_COMPENSATION'
|
|
87
|
+
| 'GOVERNMENT_BOND'
|
|
88
|
+
| 'CORPORATE_BOND'
|
|
89
|
+
| 'BOND_FUND'
|
|
90
|
+
| 'PRIMARY_RESIDENCE'
|
|
91
|
+
| 'INVESTMENT_PROPERTY'
|
|
92
|
+
| 'REIT'
|
|
93
|
+
| 'GOLD'
|
|
94
|
+
| 'SILVER'
|
|
95
|
+
| 'PRECIOUS_METAL'
|
|
96
|
+
| 'PRECIOUS_METAL_FUND'
|
|
97
|
+
| 'COMMODITY'
|
|
98
|
+
| 'COMMODITY_FUND'
|
|
99
|
+
| 'CRYPTOCURRENCY'
|
|
100
|
+
| 'RETIREMENT_ACCOUNT'
|
|
101
|
+
| 'HEALTH_ACCOUNT'
|
|
102
|
+
| 'EDUCATION_ACCOUNT'
|
|
103
|
+
| 'INSURANCE'
|
|
104
|
+
| 'PRIVATE_EQUITY'
|
|
105
|
+
| 'HEDGE_FUND'
|
|
106
|
+
| 'COLLECTIBLES'
|
|
107
|
+
| 'MORTGAGE'
|
|
108
|
+
| 'STUDENT_LOAN'
|
|
109
|
+
| 'CREDIT_CARD'
|
|
110
|
+
| 'PERSONAL_LOAN'
|
|
111
|
+
| 'OTHER'
|
|
112
|
+
| null;
|
|
76
113
|
/**
|
|
77
114
|
* Account status
|
|
78
115
|
*/
|
|
@@ -149,6 +186,43 @@ export type AccountResponseDto = {
|
|
|
149
186
|
*/
|
|
150
187
|
export type type = 'Assets' | 'Liabilities' | 'Income' | 'Expenses' | 'Equity';
|
|
151
188
|
|
|
189
|
+
/**
|
|
190
|
+
* Account-level asset sub-class (product type, e.g. STOCK/DEPOSIT/CREDIT_CARD/PERSONAL_LOAN). Computed from the account path via the asset-classifier (ADR-0077). Null for non-asset accounts (Income/Expenses/Equity) or unmatched paths.
|
|
191
|
+
*/
|
|
192
|
+
export type assetSubClass =
|
|
193
|
+
| 'DEPOSIT'
|
|
194
|
+
| 'CASH'
|
|
195
|
+
| 'MONEY_MARKET_FUND'
|
|
196
|
+
| 'STOCK'
|
|
197
|
+
| 'ETF'
|
|
198
|
+
| 'MUTUAL_FUND'
|
|
199
|
+
| 'EQUITY_COMPENSATION'
|
|
200
|
+
| 'GOVERNMENT_BOND'
|
|
201
|
+
| 'CORPORATE_BOND'
|
|
202
|
+
| 'BOND_FUND'
|
|
203
|
+
| 'PRIMARY_RESIDENCE'
|
|
204
|
+
| 'INVESTMENT_PROPERTY'
|
|
205
|
+
| 'REIT'
|
|
206
|
+
| 'GOLD'
|
|
207
|
+
| 'SILVER'
|
|
208
|
+
| 'PRECIOUS_METAL'
|
|
209
|
+
| 'PRECIOUS_METAL_FUND'
|
|
210
|
+
| 'COMMODITY'
|
|
211
|
+
| 'COMMODITY_FUND'
|
|
212
|
+
| 'CRYPTOCURRENCY'
|
|
213
|
+
| 'RETIREMENT_ACCOUNT'
|
|
214
|
+
| 'HEALTH_ACCOUNT'
|
|
215
|
+
| 'EDUCATION_ACCOUNT'
|
|
216
|
+
| 'INSURANCE'
|
|
217
|
+
| 'PRIVATE_EQUITY'
|
|
218
|
+
| 'HEDGE_FUND'
|
|
219
|
+
| 'COLLECTIBLES'
|
|
220
|
+
| 'MORTGAGE'
|
|
221
|
+
| 'STUDENT_LOAN'
|
|
222
|
+
| 'CREDIT_CARD'
|
|
223
|
+
| 'PERSONAL_LOAN'
|
|
224
|
+
| 'OTHER';
|
|
225
|
+
|
|
152
226
|
/**
|
|
153
227
|
* Account status
|
|
154
228
|
*/
|
|
@@ -2701,384 +2775,223 @@ export type ForecastResponseDto = {
|
|
|
2701
2775
|
periodEnd: string;
|
|
2702
2776
|
};
|
|
2703
2777
|
|
|
2704
|
-
export type
|
|
2705
|
-
name: string;
|
|
2706
|
-
description?: string;
|
|
2707
|
-
narrationKeywords?: Array<unknown[]>;
|
|
2708
|
-
payeeKeywords?: Array<unknown[]>;
|
|
2709
|
-
categoryKeywords?: Array<unknown[]>;
|
|
2778
|
+
export type CurrencyBalanceDto = {
|
|
2710
2779
|
/**
|
|
2711
|
-
*
|
|
2780
|
+
* ISO 4217 currency code
|
|
2712
2781
|
*/
|
|
2713
|
-
|
|
2782
|
+
currency: string;
|
|
2714
2783
|
/**
|
|
2715
|
-
*
|
|
2784
|
+
* Balance amount
|
|
2716
2785
|
*/
|
|
2717
|
-
|
|
2718
|
-
|
|
2786
|
+
balance: string;
|
|
2787
|
+
};
|
|
2788
|
+
|
|
2789
|
+
export type TimeSeriesPointDto = {
|
|
2719
2790
|
/**
|
|
2720
|
-
*
|
|
2791
|
+
* Date in YYYY-MM-DD format
|
|
2721
2792
|
*/
|
|
2722
|
-
|
|
2793
|
+
date: string;
|
|
2723
2794
|
/**
|
|
2724
|
-
*
|
|
2795
|
+
* Value at this date (in base currency)
|
|
2725
2796
|
*/
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2797
|
+
value: string;
|
|
2798
|
+
/**
|
|
2799
|
+
* Change from previous point
|
|
2800
|
+
*/
|
|
2801
|
+
change?: {
|
|
2730
2802
|
[key: string]: unknown;
|
|
2731
2803
|
};
|
|
2732
2804
|
/**
|
|
2733
|
-
*
|
|
2805
|
+
* Total assets at this date (in base currency)
|
|
2734
2806
|
*/
|
|
2735
|
-
|
|
2736
|
-
};
|
|
2737
|
-
|
|
2738
|
-
export type matchLogic = 'OR' | 'AND';
|
|
2739
|
-
|
|
2740
|
-
export type AmountRangeDto = {
|
|
2807
|
+
assets?: string;
|
|
2741
2808
|
/**
|
|
2742
|
-
*
|
|
2809
|
+
* Total liabilities at this date (in base currency)
|
|
2743
2810
|
*/
|
|
2744
|
-
|
|
2811
|
+
liabilities?: string;
|
|
2745
2812
|
/**
|
|
2746
|
-
*
|
|
2813
|
+
* Multi-currency breakdown for this point
|
|
2747
2814
|
*/
|
|
2748
|
-
|
|
2815
|
+
byCurrency?: Array<CurrencyBalanceDto>;
|
|
2749
2816
|
};
|
|
2750
2817
|
|
|
2751
|
-
export type
|
|
2752
|
-
/**
|
|
2753
|
-
* Rule ID
|
|
2754
|
-
*/
|
|
2755
|
-
id: string;
|
|
2756
|
-
/**
|
|
2757
|
-
* Rule name
|
|
2758
|
-
*/
|
|
2759
|
-
name: string;
|
|
2818
|
+
export type TrendSummaryDto = {
|
|
2760
2819
|
/**
|
|
2761
|
-
*
|
|
2820
|
+
* Value at start of period
|
|
2762
2821
|
*/
|
|
2763
|
-
|
|
2822
|
+
startValue: string;
|
|
2764
2823
|
/**
|
|
2765
|
-
*
|
|
2824
|
+
* Value at end of period
|
|
2766
2825
|
*/
|
|
2767
|
-
|
|
2826
|
+
endValue: string;
|
|
2768
2827
|
/**
|
|
2769
|
-
*
|
|
2828
|
+
* Total change over period
|
|
2770
2829
|
*/
|
|
2771
|
-
|
|
2830
|
+
totalChange: string;
|
|
2772
2831
|
/**
|
|
2773
|
-
*
|
|
2832
|
+
* Total change percentage
|
|
2774
2833
|
*/
|
|
2775
|
-
|
|
2834
|
+
totalChangePercentage: string;
|
|
2835
|
+
};
|
|
2836
|
+
|
|
2837
|
+
export type MultiCurrencyPointDto = {
|
|
2776
2838
|
/**
|
|
2777
|
-
*
|
|
2839
|
+
* Date in YYYY-MM-DD format
|
|
2778
2840
|
*/
|
|
2779
|
-
|
|
2841
|
+
date: string;
|
|
2780
2842
|
/**
|
|
2781
|
-
*
|
|
2843
|
+
* Balances by currency
|
|
2782
2844
|
*/
|
|
2783
|
-
|
|
2845
|
+
byCurrency: Array<CurrencyBalanceDto>;
|
|
2846
|
+
};
|
|
2847
|
+
|
|
2848
|
+
export type PortfolioTrendsResponseDto = {
|
|
2784
2849
|
/**
|
|
2785
|
-
*
|
|
2850
|
+
* Time series data points
|
|
2786
2851
|
*/
|
|
2787
|
-
|
|
2852
|
+
series: Array<TimeSeriesPointDto>;
|
|
2788
2853
|
/**
|
|
2789
|
-
*
|
|
2854
|
+
* Period summary
|
|
2790
2855
|
*/
|
|
2791
|
-
|
|
2856
|
+
summary: TrendSummaryDto;
|
|
2792
2857
|
/**
|
|
2793
|
-
*
|
|
2858
|
+
* Period requested
|
|
2794
2859
|
*/
|
|
2795
|
-
|
|
2860
|
+
period: string;
|
|
2796
2861
|
/**
|
|
2797
|
-
*
|
|
2862
|
+
* Data granularity
|
|
2798
2863
|
*/
|
|
2799
|
-
|
|
2864
|
+
granularity: string;
|
|
2800
2865
|
/**
|
|
2801
|
-
*
|
|
2866
|
+
* Base currency for converted values
|
|
2802
2867
|
*/
|
|
2803
|
-
|
|
2868
|
+
currency: string;
|
|
2804
2869
|
/**
|
|
2805
|
-
*
|
|
2870
|
+
* Multi-currency time series (each point has currency breakdown)
|
|
2806
2871
|
*/
|
|
2807
|
-
|
|
2872
|
+
byCurrency?: Array<MultiCurrencyPointDto>;
|
|
2808
2873
|
/**
|
|
2809
|
-
*
|
|
2874
|
+
* Exchange rate warnings
|
|
2810
2875
|
*/
|
|
2811
|
-
|
|
2876
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
2877
|
+
};
|
|
2878
|
+
|
|
2879
|
+
export type CashFlowPointDto = {
|
|
2812
2880
|
/**
|
|
2813
|
-
*
|
|
2881
|
+
* Month key (YYYY-MM)
|
|
2814
2882
|
*/
|
|
2815
|
-
|
|
2883
|
+
month: string;
|
|
2816
2884
|
/**
|
|
2817
|
-
*
|
|
2885
|
+
* Income in base currency (absolute, converted)
|
|
2818
2886
|
*/
|
|
2819
|
-
|
|
2820
|
-
[key: string]: string;
|
|
2821
|
-
};
|
|
2887
|
+
income: string;
|
|
2822
2888
|
/**
|
|
2823
|
-
*
|
|
2889
|
+
* Expense in base currency (absolute, converted)
|
|
2824
2890
|
*/
|
|
2825
|
-
|
|
2891
|
+
expense: string;
|
|
2826
2892
|
/**
|
|
2827
|
-
*
|
|
2893
|
+
* netSavings = income − expense (savings positive)
|
|
2828
2894
|
*/
|
|
2829
|
-
|
|
2895
|
+
netSavings: string;
|
|
2830
2896
|
};
|
|
2831
2897
|
|
|
2832
|
-
|
|
2833
|
-
* Learning source: NLP, REVIEW_CENTER, or null for manual
|
|
2834
|
-
*/
|
|
2835
|
-
export type learningSource = 'NLP' | 'REVIEW_CENTER';
|
|
2836
|
-
|
|
2837
|
-
export type TransactionRuleListResponseDto = {
|
|
2838
|
-
data: Array<TransactionRuleResponseDto>;
|
|
2898
|
+
export type CashFlowTrendSummaryDto = {
|
|
2839
2899
|
/**
|
|
2840
|
-
* Total
|
|
2900
|
+
* Total income across the period
|
|
2841
2901
|
*/
|
|
2842
|
-
|
|
2902
|
+
totalIncome: string;
|
|
2843
2903
|
/**
|
|
2844
|
-
*
|
|
2904
|
+
* Total expense across the period
|
|
2845
2905
|
*/
|
|
2846
|
-
|
|
2906
|
+
totalExpense: string;
|
|
2847
2907
|
/**
|
|
2848
|
-
*
|
|
2908
|
+
* income − expense across the period
|
|
2849
2909
|
*/
|
|
2850
|
-
|
|
2910
|
+
totalNetSavings: string;
|
|
2911
|
+
/**
|
|
2912
|
+
* totalNetSavings divided by the window length (N months, incl. zero-filled)
|
|
2913
|
+
*/
|
|
2914
|
+
averageMonthlyNetSavings: string;
|
|
2851
2915
|
};
|
|
2852
2916
|
|
|
2853
|
-
export type
|
|
2854
|
-
name: string;
|
|
2855
|
-
description?: string;
|
|
2856
|
-
narrationKeywords?: Array<unknown[]>;
|
|
2857
|
-
payeeKeywords?: Array<unknown[]>;
|
|
2858
|
-
categoryKeywords?: Array<unknown[]>;
|
|
2917
|
+
export type CashFlowTrendsResponseDto = {
|
|
2859
2918
|
/**
|
|
2860
|
-
*
|
|
2919
|
+
* Monthly cash-flow series (fixed N-month window, zero-filled)
|
|
2861
2920
|
*/
|
|
2862
|
-
|
|
2921
|
+
series: Array<CashFlowPointDto>;
|
|
2863
2922
|
/**
|
|
2864
|
-
*
|
|
2923
|
+
* Period totals
|
|
2865
2924
|
*/
|
|
2866
|
-
|
|
2867
|
-
matchLogic: 'OR' | 'AND';
|
|
2925
|
+
summary: CashFlowTrendSummaryDto;
|
|
2868
2926
|
/**
|
|
2869
|
-
*
|
|
2927
|
+
* Period requested
|
|
2870
2928
|
*/
|
|
2871
|
-
|
|
2929
|
+
period: string;
|
|
2872
2930
|
/**
|
|
2873
|
-
*
|
|
2931
|
+
* Data granularity (v1 returns month buckets)
|
|
2874
2932
|
*/
|
|
2875
|
-
|
|
2876
|
-
priority: number;
|
|
2877
|
-
additionalTags?: Array<unknown[]>;
|
|
2878
|
-
additionalMetadata?: {
|
|
2879
|
-
[key: string]: unknown;
|
|
2880
|
-
};
|
|
2933
|
+
granularity: string;
|
|
2881
2934
|
/**
|
|
2882
|
-
*
|
|
2935
|
+
* Base currency for converted values
|
|
2883
2936
|
*/
|
|
2884
|
-
|
|
2885
|
-
};
|
|
2886
|
-
|
|
2887
|
-
export type ValidateRuleResponseDto = {
|
|
2937
|
+
currency: string;
|
|
2888
2938
|
/**
|
|
2889
|
-
*
|
|
2939
|
+
* Exchange rate warnings (e.g. missing rate for a currency)
|
|
2890
2940
|
*/
|
|
2891
|
-
|
|
2941
|
+
warnings?: Array<ExchangeRateWarningDto>;
|
|
2942
|
+
};
|
|
2943
|
+
|
|
2944
|
+
export type GenerateSnapshotBody = unknown;
|
|
2945
|
+
|
|
2946
|
+
export type GenerateSnapshotResponse = unknown;
|
|
2947
|
+
|
|
2948
|
+
export type BackfillSnapshotsBody = unknown;
|
|
2949
|
+
|
|
2950
|
+
export type BackfillSnapshotsResponse = unknown;
|
|
2951
|
+
|
|
2952
|
+
export type DeleteOwnUserDto = {
|
|
2892
2953
|
/**
|
|
2893
|
-
*
|
|
2954
|
+
* Access token for user verification
|
|
2894
2955
|
*/
|
|
2895
|
-
|
|
2956
|
+
accessToken: string;
|
|
2957
|
+
};
|
|
2958
|
+
|
|
2959
|
+
export type SignupDto = {
|
|
2896
2960
|
/**
|
|
2897
|
-
*
|
|
2961
|
+
* Cloudflare Turnstile verification token (optional when Turnstile disabled)
|
|
2898
2962
|
*/
|
|
2899
|
-
|
|
2963
|
+
turnstileToken?: string;
|
|
2900
2964
|
};
|
|
2901
2965
|
|
|
2902
|
-
export type
|
|
2966
|
+
export type SignupResponseDto = {
|
|
2903
2967
|
/**
|
|
2904
|
-
*
|
|
2968
|
+
* JWT auth token
|
|
2905
2969
|
*/
|
|
2906
|
-
|
|
2970
|
+
authToken: string;
|
|
2907
2971
|
/**
|
|
2908
|
-
*
|
|
2972
|
+
* Auto-generated access token
|
|
2909
2973
|
*/
|
|
2910
|
-
|
|
2974
|
+
accessToken: string;
|
|
2975
|
+
/**
|
|
2976
|
+
* Assigned user role
|
|
2977
|
+
*/
|
|
2978
|
+
role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
|
|
2911
2979
|
};
|
|
2912
2980
|
|
|
2913
2981
|
/**
|
|
2914
|
-
*
|
|
2982
|
+
* Assigned user role
|
|
2915
2983
|
*/
|
|
2916
|
-
export type
|
|
2984
|
+
export type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
|
|
2917
2985
|
|
|
2918
|
-
export type
|
|
2986
|
+
export type UpdateUserSettingDto = {
|
|
2919
2987
|
/**
|
|
2920
|
-
*
|
|
2988
|
+
* Security ID
|
|
2921
2989
|
*/
|
|
2922
|
-
|
|
2990
|
+
secId?: number;
|
|
2923
2991
|
/**
|
|
2924
|
-
*
|
|
2992
|
+
* Annual interest rate
|
|
2925
2993
|
*/
|
|
2926
|
-
|
|
2927
|
-
/**
|
|
2928
|
-
* Error details for failed rules
|
|
2929
|
-
*/
|
|
2930
|
-
errors: Array<{
|
|
2931
|
-
index?: number;
|
|
2932
|
-
message?: string;
|
|
2933
|
-
}>;
|
|
2934
|
-
/**
|
|
2935
|
-
* IDs of successfully created rules
|
|
2936
|
-
*/
|
|
2937
|
-
createdRuleIds: Array<string>;
|
|
2938
|
-
};
|
|
2939
|
-
|
|
2940
|
-
export type ExportRulesResponseDto = {
|
|
2941
|
-
/**
|
|
2942
|
-
* Export timestamp
|
|
2943
|
-
*/
|
|
2944
|
-
exportedAt: string;
|
|
2945
|
-
/**
|
|
2946
|
-
* User ID
|
|
2947
|
-
*/
|
|
2948
|
-
userId: string;
|
|
2949
|
-
/**
|
|
2950
|
-
* Number of exported rules
|
|
2951
|
-
*/
|
|
2952
|
-
ruleCount: number;
|
|
2953
|
-
/**
|
|
2954
|
-
* Exported rules
|
|
2955
|
-
*/
|
|
2956
|
-
rules: unknown[];
|
|
2957
|
-
};
|
|
2958
|
-
|
|
2959
|
-
export type RuleStatisticsResponseDto = {
|
|
2960
|
-
/**
|
|
2961
|
-
* Statistics time period
|
|
2962
|
-
*/
|
|
2963
|
-
period: '7d' | '30d' | '90d';
|
|
2964
|
-
/**
|
|
2965
|
-
* Total number of rules
|
|
2966
|
-
*/
|
|
2967
|
-
totalRules: number;
|
|
2968
|
-
/**
|
|
2969
|
-
* Number of rules with at least one match
|
|
2970
|
-
*/
|
|
2971
|
-
rulesWithMatches: number;
|
|
2972
|
-
/**
|
|
2973
|
-
* Total number of matches across all rules
|
|
2974
|
-
*/
|
|
2975
|
-
totalMatches: number;
|
|
2976
|
-
/**
|
|
2977
|
-
* Average confidence score across all matches
|
|
2978
|
-
*/
|
|
2979
|
-
averageConfidence: number;
|
|
2980
|
-
/**
|
|
2981
|
-
* Per-rule statistics
|
|
2982
|
-
*/
|
|
2983
|
-
ruleStats: Array<{
|
|
2984
|
-
ruleId?: string;
|
|
2985
|
-
ruleName?: string;
|
|
2986
|
-
matchCount?: number;
|
|
2987
|
-
averageConfidence?: number;
|
|
2988
|
-
}>;
|
|
2989
|
-
};
|
|
2990
|
-
|
|
2991
|
-
/**
|
|
2992
|
-
* Statistics time period
|
|
2993
|
-
*/
|
|
2994
|
-
export type period = '7d' | '30d' | '90d';
|
|
2995
|
-
|
|
2996
|
-
export type UpdateTransactionRuleDto = {
|
|
2997
|
-
name?: string;
|
|
2998
|
-
description?: string;
|
|
2999
|
-
narrationKeywords?: Array<unknown[]>;
|
|
3000
|
-
payeeKeywords?: Array<unknown[]>;
|
|
3001
|
-
categoryKeywords?: Array<unknown[]>;
|
|
3002
|
-
/**
|
|
3003
|
-
* Payment method keywords (e.g., HuaBei, YuEBao)
|
|
3004
|
-
*/
|
|
3005
|
-
methodKeywords?: Array<unknown[]>;
|
|
3006
|
-
/**
|
|
3007
|
-
* Destination account for expenses/income (e.g., Expenses:Food:Coffee)
|
|
3008
|
-
*/
|
|
3009
|
-
categoryAccount?: string;
|
|
3010
|
-
matchLogic?: 'OR' | 'AND';
|
|
3011
|
-
/**
|
|
3012
|
-
* Minimum transaction amount (inclusive)
|
|
3013
|
-
*/
|
|
3014
|
-
amountMin?: number;
|
|
3015
|
-
/**
|
|
3016
|
-
* Maximum transaction amount (inclusive)
|
|
3017
|
-
*/
|
|
3018
|
-
amountMax?: number;
|
|
3019
|
-
priority?: number;
|
|
3020
|
-
/**
|
|
3021
|
-
* Enable or disable the rule
|
|
3022
|
-
*/
|
|
3023
|
-
enabled?: boolean;
|
|
3024
|
-
additionalTags?: Array<unknown[]>;
|
|
3025
|
-
additionalMetadata?: {
|
|
3026
|
-
[key: string]: unknown;
|
|
3027
|
-
};
|
|
3028
|
-
};
|
|
3029
|
-
|
|
3030
|
-
export type TestRuleDto = {
|
|
3031
|
-
narration: string;
|
|
3032
|
-
payee?: string;
|
|
3033
|
-
categoryAccount?: string;
|
|
3034
|
-
amount?: number;
|
|
3035
|
-
currency?: string;
|
|
3036
|
-
};
|
|
3037
|
-
|
|
3038
|
-
export type TestRuleResponseDto = {
|
|
3039
|
-
/**
|
|
3040
|
-
* Rule ID that was tested
|
|
3041
|
-
*/
|
|
3042
|
-
ruleId: string;
|
|
3043
|
-
/**
|
|
3044
|
-
* Whether the rule matched the test data
|
|
3045
|
-
*/
|
|
3046
|
-
matches: boolean;
|
|
3047
|
-
/**
|
|
3048
|
-
* Match confidence score (0-1)
|
|
3049
|
-
*/
|
|
3050
|
-
confidence: number;
|
|
3051
|
-
/**
|
|
3052
|
-
* Details of which fields matched
|
|
3053
|
-
*/
|
|
3054
|
-
matchDetails: {
|
|
3055
|
-
[key: string]: unknown;
|
|
3056
|
-
};
|
|
3057
|
-
};
|
|
3058
|
-
|
|
3059
|
-
export type DeleteOwnUserDto = {
|
|
3060
|
-
/**
|
|
3061
|
-
* Access token for user verification
|
|
3062
|
-
*/
|
|
3063
|
-
accessToken: string;
|
|
3064
|
-
};
|
|
3065
|
-
|
|
3066
|
-
export type SignupDto = {
|
|
3067
|
-
/**
|
|
3068
|
-
* Cloudflare Turnstile verification token (optional when Turnstile disabled)
|
|
3069
|
-
*/
|
|
3070
|
-
turnstileToken?: string;
|
|
3071
|
-
};
|
|
3072
|
-
|
|
3073
|
-
export type UpdateUserSettingDto = {
|
|
3074
|
-
/**
|
|
3075
|
-
* Security ID
|
|
3076
|
-
*/
|
|
3077
|
-
secId?: number;
|
|
3078
|
-
/**
|
|
3079
|
-
* Annual interest rate
|
|
3080
|
-
*/
|
|
3081
|
-
annualInterestRate?: number;
|
|
2994
|
+
annualInterestRate?: number;
|
|
3082
2995
|
/**
|
|
3083
2996
|
* Currency code
|
|
3084
2997
|
*/
|
|
@@ -3174,93 +3087,448 @@ export type UpdatePropertyDto = {
|
|
|
3174
3087
|
value: string;
|
|
3175
3088
|
};
|
|
3176
3089
|
|
|
3177
|
-
export type
|
|
3090
|
+
export type CreateTransactionRuleDto = {
|
|
3091
|
+
name: string;
|
|
3092
|
+
description?: string;
|
|
3093
|
+
narrationKeywords?: Array<unknown[]>;
|
|
3094
|
+
payeeKeywords?: Array<unknown[]>;
|
|
3095
|
+
categoryKeywords?: Array<unknown[]>;
|
|
3178
3096
|
/**
|
|
3179
|
-
*
|
|
3097
|
+
* Payment method keywords (e.g., HuaBei, YuEBao)
|
|
3180
3098
|
*/
|
|
3181
|
-
|
|
3099
|
+
methodKeywords?: Array<unknown[]>;
|
|
3182
3100
|
/**
|
|
3183
|
-
*
|
|
3101
|
+
* Destination account for expenses/income (e.g., Expenses:Food:Coffee)
|
|
3184
3102
|
*/
|
|
3185
|
-
|
|
3103
|
+
categoryAccount?: string;
|
|
3104
|
+
matchLogic: 'OR' | 'AND';
|
|
3186
3105
|
/**
|
|
3187
|
-
*
|
|
3106
|
+
* Minimum transaction amount (inclusive)
|
|
3188
3107
|
*/
|
|
3189
|
-
|
|
3108
|
+
amountMin?: number;
|
|
3190
3109
|
/**
|
|
3191
|
-
*
|
|
3110
|
+
* Maximum transaction amount (inclusive)
|
|
3192
3111
|
*/
|
|
3193
|
-
|
|
3112
|
+
amountMax?: number;
|
|
3113
|
+
priority: number;
|
|
3114
|
+
additionalTags?: Array<unknown[]>;
|
|
3115
|
+
additionalMetadata?: {
|
|
3194
3116
|
[key: string]: unknown;
|
|
3195
3117
|
};
|
|
3118
|
+
/**
|
|
3119
|
+
* If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
|
|
3120
|
+
*/
|
|
3121
|
+
upsertByPayee?: boolean;
|
|
3196
3122
|
};
|
|
3197
3123
|
|
|
3198
|
-
export type
|
|
3124
|
+
export type matchLogic = 'OR' | 'AND';
|
|
3125
|
+
|
|
3126
|
+
export type AmountRangeDto = {
|
|
3199
3127
|
/**
|
|
3200
|
-
*
|
|
3128
|
+
* Minimum amount
|
|
3201
3129
|
*/
|
|
3202
|
-
|
|
3130
|
+
min?: number;
|
|
3203
3131
|
/**
|
|
3204
|
-
*
|
|
3132
|
+
* Maximum amount
|
|
3205
3133
|
*/
|
|
3206
|
-
|
|
3134
|
+
max?: number;
|
|
3135
|
+
};
|
|
3136
|
+
|
|
3137
|
+
export type TransactionRuleResponseDto = {
|
|
3207
3138
|
/**
|
|
3208
|
-
*
|
|
3139
|
+
* Rule ID
|
|
3209
3140
|
*/
|
|
3210
|
-
|
|
3141
|
+
id: string;
|
|
3211
3142
|
/**
|
|
3212
|
-
*
|
|
3143
|
+
* Rule name
|
|
3213
3144
|
*/
|
|
3214
|
-
|
|
3145
|
+
name: string;
|
|
3215
3146
|
/**
|
|
3216
|
-
*
|
|
3147
|
+
* Rule description
|
|
3217
3148
|
*/
|
|
3218
|
-
description
|
|
3149
|
+
description?: string;
|
|
3219
3150
|
/**
|
|
3220
|
-
*
|
|
3151
|
+
* Keywords to match in transaction narration
|
|
3221
3152
|
*/
|
|
3222
|
-
|
|
3223
|
-
[key: string]: unknown;
|
|
3224
|
-
};
|
|
3153
|
+
narrationKeywords: Array<string>;
|
|
3225
3154
|
/**
|
|
3226
|
-
*
|
|
3155
|
+
* Keywords to match in payee name
|
|
3227
3156
|
*/
|
|
3228
|
-
|
|
3157
|
+
payeeKeywords: Array<string>;
|
|
3229
3158
|
/**
|
|
3230
|
-
*
|
|
3159
|
+
* Keywords to match in category
|
|
3231
3160
|
*/
|
|
3232
|
-
|
|
3233
|
-
};
|
|
3234
|
-
|
|
3235
|
-
export type EventListResponseDto = {
|
|
3161
|
+
categoryKeywords: Array<string>;
|
|
3236
3162
|
/**
|
|
3237
|
-
*
|
|
3163
|
+
* Keywords to match in payment method
|
|
3238
3164
|
*/
|
|
3239
|
-
|
|
3165
|
+
methodKeywords: Array<string>;
|
|
3240
3166
|
/**
|
|
3241
|
-
*
|
|
3167
|
+
* Destination account for categorization
|
|
3242
3168
|
*/
|
|
3243
|
-
|
|
3244
|
-
};
|
|
3245
|
-
|
|
3246
|
-
export type UpdateBeanEventDto = {
|
|
3169
|
+
categoryAccount?: string;
|
|
3247
3170
|
/**
|
|
3248
|
-
*
|
|
3171
|
+
* Keyword matching logic
|
|
3249
3172
|
*/
|
|
3250
|
-
|
|
3173
|
+
matchLogic: 'OR' | 'AND';
|
|
3251
3174
|
/**
|
|
3252
|
-
*
|
|
3175
|
+
* Amount range for matching
|
|
3253
3176
|
*/
|
|
3254
|
-
|
|
3177
|
+
amountRange?: AmountRangeDto;
|
|
3255
3178
|
/**
|
|
3256
|
-
*
|
|
3179
|
+
* Rule priority (0-1000, higher = first match)
|
|
3257
3180
|
*/
|
|
3258
|
-
|
|
3181
|
+
priority: number;
|
|
3259
3182
|
/**
|
|
3260
|
-
*
|
|
3183
|
+
* Whether the rule is enabled
|
|
3261
3184
|
*/
|
|
3262
|
-
|
|
3263
|
-
|
|
3185
|
+
enabled: boolean;
|
|
3186
|
+
/**
|
|
3187
|
+
* Learning source: NLP, REVIEW_CENTER, or null for manual
|
|
3188
|
+
*/
|
|
3189
|
+
learningSource?: 'NLP' | 'REVIEW_CENTER' | null;
|
|
3190
|
+
/**
|
|
3191
|
+
* Whether auto-apply is enabled for this rule
|
|
3192
|
+
*/
|
|
3193
|
+
autoApplyEnabled: boolean;
|
|
3194
|
+
/**
|
|
3195
|
+
* Number of confirmations for NLP-learned rules
|
|
3196
|
+
*/
|
|
3197
|
+
confirmationCount: number;
|
|
3198
|
+
/**
|
|
3199
|
+
* Additional tags
|
|
3200
|
+
*/
|
|
3201
|
+
additionalTags: Array<string>;
|
|
3202
|
+
/**
|
|
3203
|
+
* Additional metadata
|
|
3204
|
+
*/
|
|
3205
|
+
additionalMetadata?: {
|
|
3206
|
+
[key: string]: string;
|
|
3207
|
+
};
|
|
3208
|
+
/**
|
|
3209
|
+
* Created timestamp
|
|
3210
|
+
*/
|
|
3211
|
+
createdAt: string;
|
|
3212
|
+
/**
|
|
3213
|
+
* Updated timestamp
|
|
3214
|
+
*/
|
|
3215
|
+
updatedAt: string;
|
|
3216
|
+
};
|
|
3217
|
+
|
|
3218
|
+
/**
|
|
3219
|
+
* Learning source: NLP, REVIEW_CENTER, or null for manual
|
|
3220
|
+
*/
|
|
3221
|
+
export type learningSource = 'NLP' | 'REVIEW_CENTER';
|
|
3222
|
+
|
|
3223
|
+
export type TransactionRuleListResponseDto = {
|
|
3224
|
+
data: Array<TransactionRuleResponseDto>;
|
|
3225
|
+
/**
|
|
3226
|
+
* Total count of rules
|
|
3227
|
+
*/
|
|
3228
|
+
total: number;
|
|
3229
|
+
/**
|
|
3230
|
+
* Results per page
|
|
3231
|
+
*/
|
|
3232
|
+
limit: number;
|
|
3233
|
+
/**
|
|
3234
|
+
* Pagination offset
|
|
3235
|
+
*/
|
|
3236
|
+
offset: number;
|
|
3237
|
+
};
|
|
3238
|
+
|
|
3239
|
+
export type ValidateRuleDto = {
|
|
3240
|
+
name: string;
|
|
3241
|
+
description?: string;
|
|
3242
|
+
narrationKeywords?: Array<unknown[]>;
|
|
3243
|
+
payeeKeywords?: Array<unknown[]>;
|
|
3244
|
+
categoryKeywords?: Array<unknown[]>;
|
|
3245
|
+
/**
|
|
3246
|
+
* Payment method keywords (e.g., HuaBei, YuEBao)
|
|
3247
|
+
*/
|
|
3248
|
+
methodKeywords?: Array<unknown[]>;
|
|
3249
|
+
/**
|
|
3250
|
+
* Destination account for expenses/income (e.g., Expenses:Food:Coffee)
|
|
3251
|
+
*/
|
|
3252
|
+
categoryAccount?: string;
|
|
3253
|
+
matchLogic: 'OR' | 'AND';
|
|
3254
|
+
/**
|
|
3255
|
+
* Minimum transaction amount (inclusive)
|
|
3256
|
+
*/
|
|
3257
|
+
amountMin?: number;
|
|
3258
|
+
/**
|
|
3259
|
+
* Maximum transaction amount (inclusive)
|
|
3260
|
+
*/
|
|
3261
|
+
amountMax?: number;
|
|
3262
|
+
priority: number;
|
|
3263
|
+
additionalTags?: Array<unknown[]>;
|
|
3264
|
+
additionalMetadata?: {
|
|
3265
|
+
[key: string]: unknown;
|
|
3266
|
+
};
|
|
3267
|
+
/**
|
|
3268
|
+
* If true, update existing rule with matching payeeKeywords[0] instead of creating new rule
|
|
3269
|
+
*/
|
|
3270
|
+
upsertByPayee?: boolean;
|
|
3271
|
+
};
|
|
3272
|
+
|
|
3273
|
+
export type ValidateRuleResponseDto = {
|
|
3274
|
+
/**
|
|
3275
|
+
* Whether the rule configuration is valid
|
|
3276
|
+
*/
|
|
3277
|
+
valid: boolean;
|
|
3278
|
+
/**
|
|
3279
|
+
* List of validation errors (empty if valid)
|
|
3280
|
+
*/
|
|
3281
|
+
errors: Array<unknown[]>;
|
|
3282
|
+
/**
|
|
3283
|
+
* List of validation warnings (non-blocking issues)
|
|
3284
|
+
*/
|
|
3285
|
+
warnings: Array<unknown[]>;
|
|
3286
|
+
};
|
|
3287
|
+
|
|
3288
|
+
export type BulkCreateRulesDto = {
|
|
3289
|
+
/**
|
|
3290
|
+
* Array of rules to import
|
|
3291
|
+
*/
|
|
3292
|
+
rules: Array<unknown[]>;
|
|
3293
|
+
/**
|
|
3294
|
+
* Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
|
|
3295
|
+
*/
|
|
3296
|
+
conflictStrategy: 'replace' | 'skip';
|
|
3297
|
+
};
|
|
3298
|
+
|
|
3299
|
+
/**
|
|
3300
|
+
* Conflict handling strategy: skip (default) ignores duplicates, replace soft-deletes existing rule
|
|
3301
|
+
*/
|
|
3302
|
+
export type conflictStrategy = 'replace' | 'skip';
|
|
3303
|
+
|
|
3304
|
+
export type BulkCreateRulesResponseDto = {
|
|
3305
|
+
/**
|
|
3306
|
+
* Number of successfully created rules
|
|
3307
|
+
*/
|
|
3308
|
+
successCount: number;
|
|
3309
|
+
/**
|
|
3310
|
+
* Number of failed rules
|
|
3311
|
+
*/
|
|
3312
|
+
failureCount: number;
|
|
3313
|
+
/**
|
|
3314
|
+
* Error details for failed rules
|
|
3315
|
+
*/
|
|
3316
|
+
errors: Array<{
|
|
3317
|
+
index?: number;
|
|
3318
|
+
message?: string;
|
|
3319
|
+
}>;
|
|
3320
|
+
/**
|
|
3321
|
+
* IDs of successfully created rules
|
|
3322
|
+
*/
|
|
3323
|
+
createdRuleIds: Array<string>;
|
|
3324
|
+
};
|
|
3325
|
+
|
|
3326
|
+
export type ExportRulesResponseDto = {
|
|
3327
|
+
/**
|
|
3328
|
+
* Export timestamp
|
|
3329
|
+
*/
|
|
3330
|
+
exportedAt: string;
|
|
3331
|
+
/**
|
|
3332
|
+
* User ID
|
|
3333
|
+
*/
|
|
3334
|
+
userId: string;
|
|
3335
|
+
/**
|
|
3336
|
+
* Number of exported rules
|
|
3337
|
+
*/
|
|
3338
|
+
ruleCount: number;
|
|
3339
|
+
/**
|
|
3340
|
+
* Exported rules
|
|
3341
|
+
*/
|
|
3342
|
+
rules: unknown[];
|
|
3343
|
+
};
|
|
3344
|
+
|
|
3345
|
+
export type RuleStatisticsResponseDto = {
|
|
3346
|
+
/**
|
|
3347
|
+
* Statistics time period
|
|
3348
|
+
*/
|
|
3349
|
+
period: '7d' | '30d' | '90d';
|
|
3350
|
+
/**
|
|
3351
|
+
* Total number of rules
|
|
3352
|
+
*/
|
|
3353
|
+
totalRules: number;
|
|
3354
|
+
/**
|
|
3355
|
+
* Number of rules with at least one match
|
|
3356
|
+
*/
|
|
3357
|
+
rulesWithMatches: number;
|
|
3358
|
+
/**
|
|
3359
|
+
* Total number of matches across all rules
|
|
3360
|
+
*/
|
|
3361
|
+
totalMatches: number;
|
|
3362
|
+
/**
|
|
3363
|
+
* Average confidence score across all matches
|
|
3364
|
+
*/
|
|
3365
|
+
averageConfidence: number;
|
|
3366
|
+
/**
|
|
3367
|
+
* Per-rule statistics
|
|
3368
|
+
*/
|
|
3369
|
+
ruleStats: Array<{
|
|
3370
|
+
ruleId?: string;
|
|
3371
|
+
ruleName?: string;
|
|
3372
|
+
matchCount?: number;
|
|
3373
|
+
averageConfidence?: number;
|
|
3374
|
+
}>;
|
|
3375
|
+
};
|
|
3376
|
+
|
|
3377
|
+
/**
|
|
3378
|
+
* Statistics time period
|
|
3379
|
+
*/
|
|
3380
|
+
export type period = '7d' | '30d' | '90d';
|
|
3381
|
+
|
|
3382
|
+
export type UpdateTransactionRuleDto = {
|
|
3383
|
+
name?: string;
|
|
3384
|
+
description?: string;
|
|
3385
|
+
narrationKeywords?: Array<unknown[]>;
|
|
3386
|
+
payeeKeywords?: Array<unknown[]>;
|
|
3387
|
+
categoryKeywords?: Array<unknown[]>;
|
|
3388
|
+
/**
|
|
3389
|
+
* Payment method keywords (e.g., HuaBei, YuEBao)
|
|
3390
|
+
*/
|
|
3391
|
+
methodKeywords?: Array<unknown[]>;
|
|
3392
|
+
/**
|
|
3393
|
+
* Destination account for expenses/income (e.g., Expenses:Food:Coffee)
|
|
3394
|
+
*/
|
|
3395
|
+
categoryAccount?: string;
|
|
3396
|
+
matchLogic?: 'OR' | 'AND';
|
|
3397
|
+
/**
|
|
3398
|
+
* Minimum transaction amount (inclusive)
|
|
3399
|
+
*/
|
|
3400
|
+
amountMin?: number;
|
|
3401
|
+
/**
|
|
3402
|
+
* Maximum transaction amount (inclusive)
|
|
3403
|
+
*/
|
|
3404
|
+
amountMax?: number;
|
|
3405
|
+
priority?: number;
|
|
3406
|
+
/**
|
|
3407
|
+
* Enable or disable the rule
|
|
3408
|
+
*/
|
|
3409
|
+
enabled?: boolean;
|
|
3410
|
+
additionalTags?: Array<unknown[]>;
|
|
3411
|
+
additionalMetadata?: {
|
|
3412
|
+
[key: string]: unknown;
|
|
3413
|
+
};
|
|
3414
|
+
};
|
|
3415
|
+
|
|
3416
|
+
export type TestRuleDto = {
|
|
3417
|
+
narration: string;
|
|
3418
|
+
payee?: string;
|
|
3419
|
+
categoryAccount?: string;
|
|
3420
|
+
amount?: number;
|
|
3421
|
+
currency?: string;
|
|
3422
|
+
};
|
|
3423
|
+
|
|
3424
|
+
export type TestRuleResponseDto = {
|
|
3425
|
+
/**
|
|
3426
|
+
* Rule ID that was tested
|
|
3427
|
+
*/
|
|
3428
|
+
ruleId: string;
|
|
3429
|
+
/**
|
|
3430
|
+
* Whether the rule matched the test data
|
|
3431
|
+
*/
|
|
3432
|
+
matches: boolean;
|
|
3433
|
+
/**
|
|
3434
|
+
* Match confidence score (0-1)
|
|
3435
|
+
*/
|
|
3436
|
+
confidence: number;
|
|
3437
|
+
/**
|
|
3438
|
+
* Details of which fields matched
|
|
3439
|
+
*/
|
|
3440
|
+
matchDetails: {
|
|
3441
|
+
[key: string]: unknown;
|
|
3442
|
+
};
|
|
3443
|
+
};
|
|
3444
|
+
|
|
3445
|
+
export type CreateBeanEventDto = {
|
|
3446
|
+
/**
|
|
3447
|
+
* Life event date (ISO 8601)
|
|
3448
|
+
*/
|
|
3449
|
+
date: string;
|
|
3450
|
+
/**
|
|
3451
|
+
* Life event type (e.g., "employer", "location", "marital-status") — user-defined, no enum constraint at engine layer
|
|
3452
|
+
*/
|
|
3453
|
+
type: string;
|
|
3454
|
+
/**
|
|
3455
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3456
|
+
*/
|
|
3457
|
+
description: string;
|
|
3458
|
+
/**
|
|
3459
|
+
* Product-side metadata (lives in BeanEvent.meta JSON, never in engine Event fields)
|
|
3460
|
+
*/
|
|
3461
|
+
meta?: {
|
|
3462
|
+
[key: string]: unknown;
|
|
3463
|
+
};
|
|
3464
|
+
};
|
|
3465
|
+
|
|
3466
|
+
export type EventResponseDto = {
|
|
3467
|
+
/**
|
|
3468
|
+
* Unique identifier
|
|
3469
|
+
*/
|
|
3470
|
+
id: string;
|
|
3471
|
+
/**
|
|
3472
|
+
* User ID (owner of the life event)
|
|
3473
|
+
*/
|
|
3474
|
+
userId: string;
|
|
3475
|
+
/**
|
|
3476
|
+
* Life event date (ISO 8601 format)
|
|
3477
|
+
*/
|
|
3478
|
+
date: string;
|
|
3479
|
+
/**
|
|
3480
|
+
* Life event type (user-defined, e.g., "employer", "location")
|
|
3481
|
+
*/
|
|
3482
|
+
type: string;
|
|
3483
|
+
/**
|
|
3484
|
+
* Life event description. May be an empty string (a valid value distinct from absence).
|
|
3485
|
+
*/
|
|
3486
|
+
description: string;
|
|
3487
|
+
/**
|
|
3488
|
+
* Product-side metadata (free-form JSON)
|
|
3489
|
+
*/
|
|
3490
|
+
meta: {
|
|
3491
|
+
[key: string]: unknown;
|
|
3492
|
+
};
|
|
3493
|
+
/**
|
|
3494
|
+
* Creation timestamp
|
|
3495
|
+
*/
|
|
3496
|
+
createdAt: string;
|
|
3497
|
+
/**
|
|
3498
|
+
* Last update timestamp. Also emitted as the ETag response header for If-Match optimistic concurrency.
|
|
3499
|
+
*/
|
|
3500
|
+
updatedAt: string;
|
|
3501
|
+
};
|
|
3502
|
+
|
|
3503
|
+
export type EventListResponseDto = {
|
|
3504
|
+
/**
|
|
3505
|
+
* List of life events
|
|
3506
|
+
*/
|
|
3507
|
+
items: Array<EventResponseDto>;
|
|
3508
|
+
/**
|
|
3509
|
+
* Total number of life events matching the query
|
|
3510
|
+
*/
|
|
3511
|
+
total: number;
|
|
3512
|
+
};
|
|
3513
|
+
|
|
3514
|
+
export type UpdateBeanEventDto = {
|
|
3515
|
+
/**
|
|
3516
|
+
* Life event date (ISO 8601)
|
|
3517
|
+
*/
|
|
3518
|
+
date?: string;
|
|
3519
|
+
/**
|
|
3520
|
+
* Life event type (user-defined)
|
|
3521
|
+
*/
|
|
3522
|
+
type?: string;
|
|
3523
|
+
/**
|
|
3524
|
+
* Life event description. Empty string is a VALID value (distinct from absence).
|
|
3525
|
+
*/
|
|
3526
|
+
description?: string;
|
|
3527
|
+
/**
|
|
3528
|
+
* Product-side metadata (free-form JSON)
|
|
3529
|
+
*/
|
|
3530
|
+
meta?: {
|
|
3531
|
+
[key: string]: unknown;
|
|
3264
3532
|
};
|
|
3265
3533
|
};
|
|
3266
3534
|
|
|
@@ -3870,6 +4138,14 @@ export type ProcessNlpDto = {
|
|
|
3870
4138
|
parsedData?: {
|
|
3871
4139
|
[key: string]: unknown;
|
|
3872
4140
|
};
|
|
4141
|
+
/**
|
|
4142
|
+
* confirm_rule echo-back: rule id selected from the prior confirm_rule response (matchedRule.id or alternatives[i].ruleId). Applied directly when the session is confirming_rule — no NL re-parse.
|
|
4143
|
+
*/
|
|
4144
|
+
selectedRuleId?: string;
|
|
4145
|
+
/**
|
|
4146
|
+
* confirm_account echo-back: account path selected from the prior confirm_account response (suggestedAccount, similarAccounts[i], or a typed path). Applied directly when the session is confirming_account — no NL re-parse.
|
|
4147
|
+
*/
|
|
4148
|
+
selectedAccount?: string;
|
|
3873
4149
|
};
|
|
3874
4150
|
|
|
3875
4151
|
export type NlpTransactionInfoDto = {
|
|
@@ -4113,9 +4389,9 @@ export type NlpAccountConfirmationDataDto = {
|
|
|
4113
4389
|
*/
|
|
4114
4390
|
invalidAccount: string;
|
|
4115
4391
|
/**
|
|
4116
|
-
* Suggested replacement account
|
|
4392
|
+
* Suggested replacement account (omitted when no clear candidate)
|
|
4117
4393
|
*/
|
|
4118
|
-
suggestedAccount
|
|
4394
|
+
suggestedAccount?: string;
|
|
4119
4395
|
/**
|
|
4120
4396
|
* Similar accounts for user selection
|
|
4121
4397
|
*/
|
|
@@ -4294,7 +4570,8 @@ export type NlpResponseDto = {
|
|
|
4294
4570
|
| 'confirm_rule'
|
|
4295
4571
|
| 'confirm_account'
|
|
4296
4572
|
| 'confirm_payee'
|
|
4297
|
-
| 'cancel'
|
|
4573
|
+
| 'cancel'
|
|
4574
|
+
| 'aborted';
|
|
4298
4575
|
/**
|
|
4299
4576
|
* Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
|
|
4300
4577
|
*/
|
|
@@ -4408,7 +4685,8 @@ export type action2 =
|
|
|
4408
4685
|
| 'confirm_rule'
|
|
4409
4686
|
| 'confirm_account'
|
|
4410
4687
|
| 'confirm_payee'
|
|
4411
|
-
| 'cancel'
|
|
4688
|
+
| 'cancel'
|
|
4689
|
+
| 'aborted';
|
|
4412
4690
|
|
|
4413
4691
|
/**
|
|
4414
4692
|
* Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
|
|
@@ -4484,6 +4762,73 @@ export type type3 =
|
|
|
4484
4762
|
| 'INSURANCE'
|
|
4485
4763
|
| 'OTHER';
|
|
4486
4764
|
|
|
4765
|
+
export type PlatformMatchResultDto = {
|
|
4766
|
+
/**
|
|
4767
|
+
* Global platform ID
|
|
4768
|
+
*/
|
|
4769
|
+
id: string;
|
|
4770
|
+
/**
|
|
4771
|
+
* Platform name (e.g., "ICBC")
|
|
4772
|
+
*/
|
|
4773
|
+
name: string;
|
|
4774
|
+
/**
|
|
4775
|
+
* Canonical identifier in ACCOUNT_RE format (e.g., "icbc")
|
|
4776
|
+
*/
|
|
4777
|
+
canonical: string;
|
|
4778
|
+
/**
|
|
4779
|
+
* Platform type
|
|
4780
|
+
*/
|
|
4781
|
+
type:
|
|
4782
|
+
| 'BANK'
|
|
4783
|
+
| 'BROKERAGE'
|
|
4784
|
+
| 'CRYPTO_EXCHANGE'
|
|
4785
|
+
| 'PAYMENT'
|
|
4786
|
+
| 'INVESTMENT'
|
|
4787
|
+
| 'INSURANCE'
|
|
4788
|
+
| 'OTHER';
|
|
4789
|
+
/**
|
|
4790
|
+
* Suggested path segment — canonical, already in ACCOUNT_RE format
|
|
4791
|
+
*/
|
|
4792
|
+
suggestedSegment: string;
|
|
4793
|
+
/**
|
|
4794
|
+
* Logo URL
|
|
4795
|
+
*/
|
|
4796
|
+
logoUrl: string | null;
|
|
4797
|
+
/**
|
|
4798
|
+
* How this row matched: 'exact' > 'prefix' > 'substring'
|
|
4799
|
+
*/
|
|
4800
|
+
matchType: 'exact' | 'prefix' | 'substring';
|
|
4801
|
+
};
|
|
4802
|
+
|
|
4803
|
+
/**
|
|
4804
|
+
* How this row matched: 'exact' > 'prefix' > 'substring'
|
|
4805
|
+
*/
|
|
4806
|
+
export type matchType = 'exact' | 'prefix' | 'substring';
|
|
4807
|
+
|
|
4808
|
+
export type PlatformMatchResponseDto = {
|
|
4809
|
+
/**
|
|
4810
|
+
* Ranked matches, best tier first (at most 10 rows)
|
|
4811
|
+
*/
|
|
4812
|
+
platforms: Array<PlatformMatchResultDto>;
|
|
4813
|
+
/**
|
|
4814
|
+
* Overall match quality — top row's tier, or 'none' when no hits
|
|
4815
|
+
*/
|
|
4816
|
+
matchType: 'none' | 'exact' | 'prefix' | 'substring';
|
|
4817
|
+
/**
|
|
4818
|
+
* Total matches before LIMIT (truncation transparency)
|
|
4819
|
+
*/
|
|
4820
|
+
total: number;
|
|
4821
|
+
/**
|
|
4822
|
+
* true when total > platforms.length (more matches exist)
|
|
4823
|
+
*/
|
|
4824
|
+
hasMore: boolean;
|
|
4825
|
+
};
|
|
4826
|
+
|
|
4827
|
+
/**
|
|
4828
|
+
* Overall match quality — top row's tier, or 'none' when no hits
|
|
4829
|
+
*/
|
|
4830
|
+
export type matchType2 = 'none' | 'exact' | 'prefix' | 'substring';
|
|
4831
|
+
|
|
4487
4832
|
export type CreatePlatformDto = {
|
|
4488
4833
|
/**
|
|
4489
4834
|
* Platform name
|
|
@@ -5273,185 +5618,146 @@ export type HoldingPnlResponseDto = {
|
|
|
5273
5618
|
*/
|
|
5274
5619
|
export type method = 'average' | 'FIFO';
|
|
5275
5620
|
|
|
5276
|
-
export type
|
|
5277
|
-
/**
|
|
5278
|
-
* ISO 4217 currency code
|
|
5279
|
-
*/
|
|
5280
|
-
currency: string;
|
|
5281
|
-
/**
|
|
5282
|
-
* Balance amount
|
|
5283
|
-
*/
|
|
5284
|
-
balance: string;
|
|
5285
|
-
};
|
|
5286
|
-
|
|
5287
|
-
export type TimeSeriesPointDto = {
|
|
5288
|
-
/**
|
|
5289
|
-
* Date in YYYY-MM-DD format
|
|
5290
|
-
*/
|
|
5291
|
-
date: string;
|
|
5292
|
-
/**
|
|
5293
|
-
* Value at this date (in base currency)
|
|
5294
|
-
*/
|
|
5295
|
-
value: string;
|
|
5296
|
-
/**
|
|
5297
|
-
* Change from previous point
|
|
5298
|
-
*/
|
|
5299
|
-
change?: {
|
|
5300
|
-
[key: string]: unknown;
|
|
5301
|
-
};
|
|
5302
|
-
/**
|
|
5303
|
-
* Total assets at this date (in base currency)
|
|
5304
|
-
*/
|
|
5305
|
-
assets?: string;
|
|
5306
|
-
/**
|
|
5307
|
-
* Total liabilities at this date (in base currency)
|
|
5308
|
-
*/
|
|
5309
|
-
liabilities?: string;
|
|
5310
|
-
/**
|
|
5311
|
-
* Multi-currency breakdown for this point
|
|
5312
|
-
*/
|
|
5313
|
-
byCurrency?: Array<CurrencyBalanceDto>;
|
|
5314
|
-
};
|
|
5315
|
-
|
|
5316
|
-
export type TrendSummaryDto = {
|
|
5317
|
-
/**
|
|
5318
|
-
* Value at start of period
|
|
5319
|
-
*/
|
|
5320
|
-
startValue: string;
|
|
5321
|
-
/**
|
|
5322
|
-
* Value at end of period
|
|
5323
|
-
*/
|
|
5324
|
-
endValue: string;
|
|
5325
|
-
/**
|
|
5326
|
-
* Total change over period
|
|
5327
|
-
*/
|
|
5328
|
-
totalChange: string;
|
|
5621
|
+
export type AnonymousLoginDto = {
|
|
5329
5622
|
/**
|
|
5330
|
-
*
|
|
5623
|
+
* Access token for anonymous login
|
|
5331
5624
|
*/
|
|
5332
|
-
|
|
5625
|
+
accessToken: string;
|
|
5333
5626
|
};
|
|
5334
5627
|
|
|
5335
|
-
export type
|
|
5628
|
+
export type AnonymousLoginResponseDto = {
|
|
5336
5629
|
/**
|
|
5337
|
-
*
|
|
5630
|
+
* JWT auth token
|
|
5338
5631
|
*/
|
|
5339
|
-
|
|
5340
|
-
/**
|
|
5341
|
-
* Balances by currency
|
|
5342
|
-
*/
|
|
5343
|
-
byCurrency: Array<CurrencyBalanceDto>;
|
|
5632
|
+
authToken: string;
|
|
5344
5633
|
};
|
|
5345
5634
|
|
|
5346
|
-
export type
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
summary: TrendSummaryDto;
|
|
5355
|
-
/**
|
|
5356
|
-
* Period requested
|
|
5357
|
-
*/
|
|
5358
|
-
period: string;
|
|
5635
|
+
export type SymbolSearchResultDto = {
|
|
5636
|
+
symbol: string;
|
|
5637
|
+
name?: {
|
|
5638
|
+
[key: string]: unknown;
|
|
5639
|
+
} | null;
|
|
5640
|
+
exchange?: {
|
|
5641
|
+
[key: string]: unknown;
|
|
5642
|
+
} | null;
|
|
5359
5643
|
/**
|
|
5360
|
-
*
|
|
5644
|
+
* OpenBB asset_type (e.g. stock, etf)
|
|
5361
5645
|
*/
|
|
5362
|
-
|
|
5646
|
+
assetType?: {
|
|
5647
|
+
[key: string]: unknown;
|
|
5648
|
+
} | null;
|
|
5363
5649
|
/**
|
|
5364
|
-
*
|
|
5650
|
+
* IGN asset class (region.types.ts ASSET_CLASSES)
|
|
5365
5651
|
*/
|
|
5366
|
-
|
|
5652
|
+
assetClass?: {
|
|
5653
|
+
[key: string]: unknown;
|
|
5654
|
+
} | null;
|
|
5367
5655
|
/**
|
|
5368
|
-
*
|
|
5656
|
+
* IGN asset sub-class (region.types.ts ASSET_SUB_CLASSES)
|
|
5369
5657
|
*/
|
|
5370
|
-
|
|
5658
|
+
assetSubClass?: {
|
|
5659
|
+
[key: string]: unknown;
|
|
5660
|
+
} | null;
|
|
5371
5661
|
/**
|
|
5372
|
-
*
|
|
5662
|
+
* Trading currency (extra_data or inferred from exchange)
|
|
5373
5663
|
*/
|
|
5374
|
-
|
|
5664
|
+
currency?: {
|
|
5665
|
+
[key: string]: unknown;
|
|
5666
|
+
} | null;
|
|
5375
5667
|
};
|
|
5376
5668
|
|
|
5377
|
-
export type
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5669
|
+
export type SymbolQuoteDto = {
|
|
5670
|
+
symbol?: string;
|
|
5671
|
+
name?: {
|
|
5672
|
+
[key: string]: unknown;
|
|
5673
|
+
} | null;
|
|
5674
|
+
exchange?: {
|
|
5675
|
+
[key: string]: unknown;
|
|
5676
|
+
} | null;
|
|
5382
5677
|
/**
|
|
5383
|
-
*
|
|
5678
|
+
* OpenBB asset_type
|
|
5384
5679
|
*/
|
|
5385
|
-
|
|
5680
|
+
assetType?: {
|
|
5681
|
+
[key: string]: unknown;
|
|
5682
|
+
} | null;
|
|
5386
5683
|
/**
|
|
5387
|
-
*
|
|
5684
|
+
* IGN asset class
|
|
5388
5685
|
*/
|
|
5389
|
-
|
|
5686
|
+
assetClass?: {
|
|
5687
|
+
[key: string]: unknown;
|
|
5688
|
+
} | null;
|
|
5390
5689
|
/**
|
|
5391
|
-
*
|
|
5690
|
+
* IGN asset sub-class
|
|
5392
5691
|
*/
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
export type CashFlowTrendSummaryDto = {
|
|
5692
|
+
assetSubClass?: {
|
|
5693
|
+
[key: string]: unknown;
|
|
5694
|
+
} | null;
|
|
5397
5695
|
/**
|
|
5398
|
-
*
|
|
5696
|
+
* Trading currency (extra_data or inferred from exchange)
|
|
5399
5697
|
*/
|
|
5400
|
-
|
|
5698
|
+
currency?: {
|
|
5699
|
+
[key: string]: unknown;
|
|
5700
|
+
} | null;
|
|
5401
5701
|
/**
|
|
5402
|
-
*
|
|
5702
|
+
* Latest price (Decimal string)
|
|
5403
5703
|
*/
|
|
5404
|
-
|
|
5704
|
+
price?: {
|
|
5705
|
+
[key: string]: unknown;
|
|
5706
|
+
} | null;
|
|
5405
5707
|
/**
|
|
5406
|
-
*
|
|
5708
|
+
* Date the price was observed (ISO yyyy-MM-dd)
|
|
5407
5709
|
*/
|
|
5408
|
-
|
|
5710
|
+
priceDate?: {
|
|
5711
|
+
[key: string]: unknown;
|
|
5712
|
+
} | null;
|
|
5409
5713
|
/**
|
|
5410
|
-
*
|
|
5714
|
+
* Change vs previous close, in percentage points (1.7 == 1.7%). openbb stores change_percent as a normalized decimal; this exposes percentage points for frontend convenience.
|
|
5411
5715
|
*/
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
export type CashFlowTrendsResponseDto = {
|
|
5716
|
+
changePercent?: {
|
|
5717
|
+
[key: string]: unknown;
|
|
5718
|
+
} | null;
|
|
5416
5719
|
/**
|
|
5417
|
-
*
|
|
5720
|
+
* Previous close (Decimal string)
|
|
5418
5721
|
*/
|
|
5419
|
-
|
|
5722
|
+
prevClose?: {
|
|
5723
|
+
[key: string]: unknown;
|
|
5724
|
+
} | null;
|
|
5420
5725
|
/**
|
|
5421
|
-
*
|
|
5726
|
+
* Day open (Decimal string)
|
|
5422
5727
|
*/
|
|
5423
|
-
|
|
5728
|
+
open?: {
|
|
5729
|
+
[key: string]: unknown;
|
|
5730
|
+
} | null;
|
|
5424
5731
|
/**
|
|
5425
|
-
*
|
|
5732
|
+
* Day high (Decimal string)
|
|
5426
5733
|
*/
|
|
5427
|
-
|
|
5734
|
+
high?: {
|
|
5735
|
+
[key: string]: unknown;
|
|
5736
|
+
} | null;
|
|
5428
5737
|
/**
|
|
5429
|
-
*
|
|
5738
|
+
* Day low (Decimal string)
|
|
5430
5739
|
*/
|
|
5431
|
-
|
|
5740
|
+
low?: {
|
|
5741
|
+
[key: string]: unknown;
|
|
5742
|
+
} | null;
|
|
5432
5743
|
/**
|
|
5433
|
-
*
|
|
5744
|
+
* Day volume (Decimal string)
|
|
5434
5745
|
*/
|
|
5435
|
-
|
|
5746
|
+
volume?: {
|
|
5747
|
+
[key: string]: unknown;
|
|
5748
|
+
} | null;
|
|
5436
5749
|
/**
|
|
5437
|
-
*
|
|
5750
|
+
* 52-week high (Decimal string)
|
|
5438
5751
|
*/
|
|
5439
|
-
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
export type GenerateSnapshotBody = unknown;
|
|
5443
|
-
|
|
5444
|
-
export type GenerateSnapshotResponse = unknown;
|
|
5445
|
-
|
|
5446
|
-
export type BackfillSnapshotsBody = unknown;
|
|
5447
|
-
|
|
5448
|
-
export type BackfillSnapshotsResponse = unknown;
|
|
5449
|
-
|
|
5450
|
-
export type AnonymousLoginDto = {
|
|
5752
|
+
yearHigh?: {
|
|
5753
|
+
[key: string]: unknown;
|
|
5754
|
+
} | null;
|
|
5451
5755
|
/**
|
|
5452
|
-
*
|
|
5756
|
+
* 52-week low (Decimal string)
|
|
5453
5757
|
*/
|
|
5454
|
-
|
|
5758
|
+
yearLow?: {
|
|
5759
|
+
[key: string]: unknown;
|
|
5760
|
+
} | null;
|
|
5455
5761
|
};
|
|
5456
5762
|
|
|
5457
5763
|
export type AccountControllerCreateData = {
|
|
@@ -6485,20 +6791,168 @@ export type ExpectedTransactionControllerEnterNowData = {
|
|
|
6485
6791
|
requestBody: EnterNowDto;
|
|
6486
6792
|
};
|
|
6487
6793
|
|
|
6488
|
-
export type ExpectedTransactionControllerEnterNowResponse = unknown;
|
|
6794
|
+
export type ExpectedTransactionControllerEnterNowResponse = unknown;
|
|
6795
|
+
|
|
6796
|
+
export type ForecastControllerGetForecastData = {
|
|
6797
|
+
/**
|
|
6798
|
+
* Number of months to forecast (1-12, default 3)
|
|
6799
|
+
*/
|
|
6800
|
+
months?: number;
|
|
6801
|
+
/**
|
|
6802
|
+
* Region code for tenant context
|
|
6803
|
+
*/
|
|
6804
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6805
|
+
};
|
|
6806
|
+
|
|
6807
|
+
export type ForecastControllerGetForecastResponse = ForecastResponseDto;
|
|
6808
|
+
|
|
6809
|
+
export type ReportingControllerGetPortfolioTrendsData = {
|
|
6810
|
+
/**
|
|
6811
|
+
* Data granularity
|
|
6812
|
+
*/
|
|
6813
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6814
|
+
/**
|
|
6815
|
+
* Time period
|
|
6816
|
+
*/
|
|
6817
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6818
|
+
/**
|
|
6819
|
+
* Region code for tenant context
|
|
6820
|
+
*/
|
|
6821
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6822
|
+
};
|
|
6823
|
+
|
|
6824
|
+
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
6825
|
+
PortfolioTrendsResponseDto;
|
|
6826
|
+
|
|
6827
|
+
export type ReportingControllerGetCashFlowTrendsData = {
|
|
6828
|
+
/**
|
|
6829
|
+
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
6830
|
+
*/
|
|
6831
|
+
granularity?: 'day' | 'week' | 'month';
|
|
6832
|
+
/**
|
|
6833
|
+
* Time period
|
|
6834
|
+
*/
|
|
6835
|
+
period?: '1m' | '3m' | '6m' | '1y';
|
|
6836
|
+
/**
|
|
6837
|
+
* Region code for tenant context
|
|
6838
|
+
*/
|
|
6839
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6840
|
+
};
|
|
6841
|
+
|
|
6842
|
+
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
6843
|
+
CashFlowTrendsResponseDto;
|
|
6844
|
+
|
|
6845
|
+
export type ReportingControllerGenerateSnapshotData = {
|
|
6846
|
+
/**
|
|
6847
|
+
* Region code for tenant context
|
|
6848
|
+
*/
|
|
6849
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6850
|
+
/**
|
|
6851
|
+
* Optional date (defaults to today)
|
|
6852
|
+
*/
|
|
6853
|
+
requestBody: GenerateSnapshotBody;
|
|
6854
|
+
};
|
|
6855
|
+
|
|
6856
|
+
export type ReportingControllerGenerateSnapshotResponse =
|
|
6857
|
+
GenerateSnapshotResponse;
|
|
6858
|
+
|
|
6859
|
+
export type ReportingControllerBackfillSnapshotsData = {
|
|
6860
|
+
/**
|
|
6861
|
+
* Region code for tenant context
|
|
6862
|
+
*/
|
|
6863
|
+
region: 'cn' | 'us' | 'de' | 'gb';
|
|
6864
|
+
requestBody: BackfillSnapshotsBody;
|
|
6865
|
+
};
|
|
6866
|
+
|
|
6867
|
+
export type ReportingControllerBackfillSnapshotsResponse =
|
|
6868
|
+
BackfillSnapshotsResponse;
|
|
6869
|
+
|
|
6870
|
+
export type UserControllerDeleteOwnUserData = {
|
|
6871
|
+
requestBody: DeleteOwnUserDto;
|
|
6872
|
+
};
|
|
6873
|
+
|
|
6874
|
+
export type UserControllerDeleteOwnUserResponse = void;
|
|
6875
|
+
|
|
6876
|
+
export type UserControllerGetUserData = {
|
|
6877
|
+
acceptLanguage: string;
|
|
6878
|
+
};
|
|
6879
|
+
|
|
6880
|
+
export type UserControllerGetUserResponse = unknown;
|
|
6881
|
+
|
|
6882
|
+
export type UserControllerSignupUserData = {
|
|
6883
|
+
requestBody: SignupDto;
|
|
6884
|
+
};
|
|
6885
|
+
|
|
6886
|
+
export type UserControllerSignupUserResponse = SignupResponseDto;
|
|
6887
|
+
|
|
6888
|
+
export type UserControllerDeleteUserData = {
|
|
6889
|
+
/**
|
|
6890
|
+
* User ID to delete
|
|
6891
|
+
*/
|
|
6892
|
+
id: string;
|
|
6893
|
+
};
|
|
6894
|
+
|
|
6895
|
+
export type UserControllerDeleteUserResponse = void;
|
|
6896
|
+
|
|
6897
|
+
export type UserControllerGetUserInfoData = {
|
|
6898
|
+
/**
|
|
6899
|
+
* User ID
|
|
6900
|
+
*/
|
|
6901
|
+
id: string;
|
|
6902
|
+
};
|
|
6903
|
+
|
|
6904
|
+
export type UserControllerGetUserInfoResponse = unknown;
|
|
6905
|
+
|
|
6906
|
+
export type UserControllerUpdateUserSettingData = {
|
|
6907
|
+
requestBody: UpdateUserSettingDto;
|
|
6908
|
+
};
|
|
6909
|
+
|
|
6910
|
+
export type UserControllerUpdateUserSettingResponse = unknown;
|
|
6911
|
+
|
|
6912
|
+
export type UserControllerGetAllUserSettingsByPageData = {
|
|
6913
|
+
/**
|
|
6914
|
+
* Page number
|
|
6915
|
+
*/
|
|
6916
|
+
pageNo: number;
|
|
6917
|
+
/**
|
|
6918
|
+
* Page size
|
|
6919
|
+
*/
|
|
6920
|
+
pageSize: number;
|
|
6921
|
+
};
|
|
6922
|
+
|
|
6923
|
+
export type UserControllerGetAllUserSettingsByPageResponse = unknown;
|
|
6924
|
+
|
|
6925
|
+
export type UserControllerGetAssetLiabilitySummaryResponse = unknown;
|
|
6926
|
+
|
|
6927
|
+
export type PropertyControllerGetAllResponse = unknown;
|
|
6928
|
+
|
|
6929
|
+
export type PropertyControllerGetByKeyData = {
|
|
6930
|
+
/**
|
|
6931
|
+
* Property key
|
|
6932
|
+
*/
|
|
6933
|
+
key: string;
|
|
6934
|
+
};
|
|
6935
|
+
|
|
6936
|
+
export type PropertyControllerGetByKeyResponse = unknown;
|
|
6937
|
+
|
|
6938
|
+
export type PropertyControllerUpdateData = {
|
|
6939
|
+
/**
|
|
6940
|
+
* Property key
|
|
6941
|
+
*/
|
|
6942
|
+
key: string;
|
|
6943
|
+
requestBody: UpdatePropertyDto;
|
|
6944
|
+
};
|
|
6945
|
+
|
|
6946
|
+
export type PropertyControllerUpdateResponse = unknown;
|
|
6489
6947
|
|
|
6490
|
-
export type
|
|
6491
|
-
/**
|
|
6492
|
-
* Number of months to forecast (1-12, default 3)
|
|
6493
|
-
*/
|
|
6494
|
-
months?: number;
|
|
6948
|
+
export type PropertyControllerDeleteData = {
|
|
6495
6949
|
/**
|
|
6496
|
-
*
|
|
6950
|
+
* Property key
|
|
6497
6951
|
*/
|
|
6498
|
-
|
|
6952
|
+
key: string;
|
|
6499
6953
|
};
|
|
6500
6954
|
|
|
6501
|
-
export type
|
|
6955
|
+
export type PropertyControllerDeleteResponse = void;
|
|
6502
6956
|
|
|
6503
6957
|
export type TransactionRuleControllerCreateData = {
|
|
6504
6958
|
/**
|
|
@@ -6645,93 +7099,6 @@ export type TransactionRuleControllerTestData = {
|
|
|
6645
7099
|
|
|
6646
7100
|
export type TransactionRuleControllerTestResponse = TestRuleResponseDto;
|
|
6647
7101
|
|
|
6648
|
-
export type UserControllerDeleteOwnUserData = {
|
|
6649
|
-
requestBody: DeleteOwnUserDto;
|
|
6650
|
-
};
|
|
6651
|
-
|
|
6652
|
-
export type UserControllerDeleteOwnUserResponse = void;
|
|
6653
|
-
|
|
6654
|
-
export type UserControllerGetUserData = {
|
|
6655
|
-
acceptLanguage: string;
|
|
6656
|
-
};
|
|
6657
|
-
|
|
6658
|
-
export type UserControllerGetUserResponse = unknown;
|
|
6659
|
-
|
|
6660
|
-
export type UserControllerSignupUserData = {
|
|
6661
|
-
requestBody: SignupDto;
|
|
6662
|
-
};
|
|
6663
|
-
|
|
6664
|
-
export type UserControllerSignupUserResponse = unknown;
|
|
6665
|
-
|
|
6666
|
-
export type UserControllerDeleteUserData = {
|
|
6667
|
-
/**
|
|
6668
|
-
* User ID to delete
|
|
6669
|
-
*/
|
|
6670
|
-
id: string;
|
|
6671
|
-
};
|
|
6672
|
-
|
|
6673
|
-
export type UserControllerDeleteUserResponse = void;
|
|
6674
|
-
|
|
6675
|
-
export type UserControllerGetUserInfoData = {
|
|
6676
|
-
/**
|
|
6677
|
-
* User ID
|
|
6678
|
-
*/
|
|
6679
|
-
id: string;
|
|
6680
|
-
};
|
|
6681
|
-
|
|
6682
|
-
export type UserControllerGetUserInfoResponse = unknown;
|
|
6683
|
-
|
|
6684
|
-
export type UserControllerUpdateUserSettingData = {
|
|
6685
|
-
requestBody: UpdateUserSettingDto;
|
|
6686
|
-
};
|
|
6687
|
-
|
|
6688
|
-
export type UserControllerUpdateUserSettingResponse = unknown;
|
|
6689
|
-
|
|
6690
|
-
export type UserControllerGetAllUserSettingsByPageData = {
|
|
6691
|
-
/**
|
|
6692
|
-
* Page number
|
|
6693
|
-
*/
|
|
6694
|
-
pageNo: number;
|
|
6695
|
-
/**
|
|
6696
|
-
* Page size
|
|
6697
|
-
*/
|
|
6698
|
-
pageSize: number;
|
|
6699
|
-
};
|
|
6700
|
-
|
|
6701
|
-
export type UserControllerGetAllUserSettingsByPageResponse = unknown;
|
|
6702
|
-
|
|
6703
|
-
export type UserControllerGetAssetLiabilitySummaryResponse = unknown;
|
|
6704
|
-
|
|
6705
|
-
export type PropertyControllerGetAllResponse = unknown;
|
|
6706
|
-
|
|
6707
|
-
export type PropertyControllerGetByKeyData = {
|
|
6708
|
-
/**
|
|
6709
|
-
* Property key
|
|
6710
|
-
*/
|
|
6711
|
-
key: string;
|
|
6712
|
-
};
|
|
6713
|
-
|
|
6714
|
-
export type PropertyControllerGetByKeyResponse = unknown;
|
|
6715
|
-
|
|
6716
|
-
export type PropertyControllerUpdateData = {
|
|
6717
|
-
/**
|
|
6718
|
-
* Property key
|
|
6719
|
-
*/
|
|
6720
|
-
key: string;
|
|
6721
|
-
requestBody: UpdatePropertyDto;
|
|
6722
|
-
};
|
|
6723
|
-
|
|
6724
|
-
export type PropertyControllerUpdateResponse = unknown;
|
|
6725
|
-
|
|
6726
|
-
export type PropertyControllerDeleteData = {
|
|
6727
|
-
/**
|
|
6728
|
-
* Property key
|
|
6729
|
-
*/
|
|
6730
|
-
key: string;
|
|
6731
|
-
};
|
|
6732
|
-
|
|
6733
|
-
export type PropertyControllerDeleteResponse = void;
|
|
6734
|
-
|
|
6735
7102
|
export type EventControllerCreateData = {
|
|
6736
7103
|
/**
|
|
6737
7104
|
* Region code for tenant context (decorative for life events)
|
|
@@ -7159,7 +7526,7 @@ export type PlatformControllerMatchPlatformsData = {
|
|
|
7159
7526
|
region?: string;
|
|
7160
7527
|
};
|
|
7161
7528
|
|
|
7162
|
-
export type PlatformControllerMatchPlatformsResponse =
|
|
7529
|
+
export type PlatformControllerMatchPlatformsResponse = PlatformMatchResponseDto;
|
|
7163
7530
|
|
|
7164
7531
|
export type PlatformControllerUpdateData = {
|
|
7165
7532
|
/**
|
|
@@ -7277,74 +7644,13 @@ export type HoldingPnlControllerGetHoldingPnlData = {
|
|
|
7277
7644
|
|
|
7278
7645
|
export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
|
|
7279
7646
|
|
|
7280
|
-
export type ReportingControllerGetPortfolioTrendsData = {
|
|
7281
|
-
/**
|
|
7282
|
-
* Data granularity
|
|
7283
|
-
*/
|
|
7284
|
-
granularity?: 'day' | 'week' | 'month';
|
|
7285
|
-
/**
|
|
7286
|
-
* Time period
|
|
7287
|
-
*/
|
|
7288
|
-
period?: '1m' | '3m' | '6m' | '1y';
|
|
7289
|
-
/**
|
|
7290
|
-
* Region code for tenant context
|
|
7291
|
-
*/
|
|
7292
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7293
|
-
};
|
|
7294
|
-
|
|
7295
|
-
export type ReportingControllerGetPortfolioTrendsResponse =
|
|
7296
|
-
PortfolioTrendsResponseDto;
|
|
7297
|
-
|
|
7298
|
-
export type ReportingControllerGetCashFlowTrendsData = {
|
|
7299
|
-
/**
|
|
7300
|
-
* Data granularity (accepted for API symmetry; v1 returns month buckets)
|
|
7301
|
-
*/
|
|
7302
|
-
granularity?: 'day' | 'week' | 'month';
|
|
7303
|
-
/**
|
|
7304
|
-
* Time period
|
|
7305
|
-
*/
|
|
7306
|
-
period?: '1m' | '3m' | '6m' | '1y';
|
|
7307
|
-
/**
|
|
7308
|
-
* Region code for tenant context
|
|
7309
|
-
*/
|
|
7310
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7311
|
-
};
|
|
7312
|
-
|
|
7313
|
-
export type ReportingControllerGetCashFlowTrendsResponse =
|
|
7314
|
-
CashFlowTrendsResponseDto;
|
|
7315
|
-
|
|
7316
|
-
export type ReportingControllerGenerateSnapshotData = {
|
|
7317
|
-
/**
|
|
7318
|
-
* Region code for tenant context
|
|
7319
|
-
*/
|
|
7320
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7321
|
-
/**
|
|
7322
|
-
* Optional date (defaults to today)
|
|
7323
|
-
*/
|
|
7324
|
-
requestBody: GenerateSnapshotBody;
|
|
7325
|
-
};
|
|
7326
|
-
|
|
7327
|
-
export type ReportingControllerGenerateSnapshotResponse =
|
|
7328
|
-
GenerateSnapshotResponse;
|
|
7329
|
-
|
|
7330
|
-
export type ReportingControllerBackfillSnapshotsData = {
|
|
7331
|
-
/**
|
|
7332
|
-
* Region code for tenant context
|
|
7333
|
-
*/
|
|
7334
|
-
region: 'cn' | 'us' | 'de' | 'gb';
|
|
7335
|
-
requestBody: BackfillSnapshotsBody;
|
|
7336
|
-
};
|
|
7337
|
-
|
|
7338
|
-
export type ReportingControllerBackfillSnapshotsResponse =
|
|
7339
|
-
BackfillSnapshotsResponse;
|
|
7340
|
-
|
|
7341
7647
|
export type ApiKeysControllerCreateApiKeyResponse = unknown;
|
|
7342
7648
|
|
|
7343
7649
|
export type AuthControllerAccessTokenLoginData = {
|
|
7344
7650
|
requestBody: AnonymousLoginDto;
|
|
7345
7651
|
};
|
|
7346
7652
|
|
|
7347
|
-
export type AuthControllerAccessTokenLoginResponse =
|
|
7653
|
+
export type AuthControllerAccessTokenLoginResponse = AnonymousLoginResponseDto;
|
|
7348
7654
|
|
|
7349
7655
|
export type CacheControllerFlushCacheResponse = unknown;
|
|
7350
7656
|
|
|
@@ -7384,6 +7690,33 @@ export type HealthControllerGetMetricsResponse = unknown;
|
|
|
7384
7690
|
|
|
7385
7691
|
export type InfoControllerGetInfoResponse = unknown;
|
|
7386
7692
|
|
|
7693
|
+
export type SymbolControllerSearchData = {
|
|
7694
|
+
/**
|
|
7695
|
+
* Filter by OpenBB asset_type (e.g. stock, etf)
|
|
7696
|
+
*/
|
|
7697
|
+
assetType?: string;
|
|
7698
|
+
/**
|
|
7699
|
+
* Filter by exchange code (e.g. US, HK, SS, SZ)
|
|
7700
|
+
*/
|
|
7701
|
+
exchange?: string;
|
|
7702
|
+
/**
|
|
7703
|
+
* Maximum number of results (clamped 1..50)
|
|
7704
|
+
*/
|
|
7705
|
+
limit?: number;
|
|
7706
|
+
/**
|
|
7707
|
+
* Search term — matched against symbol and instrument name. Empty string returns [].
|
|
7708
|
+
*/
|
|
7709
|
+
q: string;
|
|
7710
|
+
};
|
|
7711
|
+
|
|
7712
|
+
export type SymbolControllerSearchResponse = Array<SymbolSearchResultDto>;
|
|
7713
|
+
|
|
7714
|
+
export type SymbolControllerGetQuoteData = {
|
|
7715
|
+
symbol: string;
|
|
7716
|
+
};
|
|
7717
|
+
|
|
7718
|
+
export type SymbolControllerGetQuoteResponse = SymbolQuoteDto;
|
|
7719
|
+
|
|
7387
7720
|
export type $OpenApiTs = {
|
|
7388
7721
|
'/api/v1/{region}/bean/accounts': {
|
|
7389
7722
|
post: {
|
|
@@ -8425,425 +8758,497 @@ export type $OpenApiTs = {
|
|
|
8425
8758
|
};
|
|
8426
8759
|
'/api/v1/{region}/bean/expected-transactions/{id}/enter': {
|
|
8427
8760
|
post: {
|
|
8428
|
-
req: ExpectedTransactionControllerEnterNowData;
|
|
8761
|
+
req: ExpectedTransactionControllerEnterNowData;
|
|
8762
|
+
res: {
|
|
8763
|
+
/**
|
|
8764
|
+
* Transaction created successfully
|
|
8765
|
+
*/
|
|
8766
|
+
201: unknown;
|
|
8767
|
+
/**
|
|
8768
|
+
* Cannot enter - not in PENDING status or missing accounts
|
|
8769
|
+
*/
|
|
8770
|
+
400: unknown;
|
|
8771
|
+
/**
|
|
8772
|
+
* Expected transaction or accounts not found
|
|
8773
|
+
*/
|
|
8774
|
+
404: unknown;
|
|
8775
|
+
};
|
|
8776
|
+
};
|
|
8777
|
+
};
|
|
8778
|
+
'/api/v1/{region}/bean/recurring/forecast': {
|
|
8779
|
+
get: {
|
|
8780
|
+
req: ForecastControllerGetForecastData;
|
|
8781
|
+
res: {
|
|
8782
|
+
/**
|
|
8783
|
+
* Forecast retrieved successfully
|
|
8784
|
+
*/
|
|
8785
|
+
200: ForecastResponseDto;
|
|
8786
|
+
};
|
|
8787
|
+
};
|
|
8788
|
+
};
|
|
8789
|
+
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
8790
|
+
get: {
|
|
8791
|
+
req: ReportingControllerGetPortfolioTrendsData;
|
|
8792
|
+
res: {
|
|
8793
|
+
/**
|
|
8794
|
+
* Trends retrieved successfully
|
|
8795
|
+
*/
|
|
8796
|
+
200: PortfolioTrendsResponseDto;
|
|
8797
|
+
/**
|
|
8798
|
+
* User not authenticated
|
|
8799
|
+
*/
|
|
8800
|
+
401: unknown;
|
|
8801
|
+
};
|
|
8802
|
+
};
|
|
8803
|
+
};
|
|
8804
|
+
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
8805
|
+
get: {
|
|
8806
|
+
req: ReportingControllerGetCashFlowTrendsData;
|
|
8807
|
+
res: {
|
|
8808
|
+
/**
|
|
8809
|
+
* Cash-flow trends retrieved successfully
|
|
8810
|
+
*/
|
|
8811
|
+
200: CashFlowTrendsResponseDto;
|
|
8812
|
+
/**
|
|
8813
|
+
* User not authenticated
|
|
8814
|
+
*/
|
|
8815
|
+
401: unknown;
|
|
8816
|
+
};
|
|
8817
|
+
};
|
|
8818
|
+
};
|
|
8819
|
+
'/api/v1/{region}/reporting/snapshots/generate': {
|
|
8820
|
+
post: {
|
|
8821
|
+
req: ReportingControllerGenerateSnapshotData;
|
|
8822
|
+
res: {
|
|
8823
|
+
/**
|
|
8824
|
+
* Snapshot generated successfully
|
|
8825
|
+
*/
|
|
8826
|
+
200: GenerateSnapshotResponse;
|
|
8827
|
+
/**
|
|
8828
|
+
* Invalid date format
|
|
8829
|
+
*/
|
|
8830
|
+
400: unknown;
|
|
8831
|
+
/**
|
|
8832
|
+
* User not authenticated
|
|
8833
|
+
*/
|
|
8834
|
+
401: unknown;
|
|
8835
|
+
};
|
|
8836
|
+
};
|
|
8837
|
+
};
|
|
8838
|
+
'/api/v1/{region}/reporting/snapshots/backfill': {
|
|
8839
|
+
post: {
|
|
8840
|
+
req: ReportingControllerBackfillSnapshotsData;
|
|
8429
8841
|
res: {
|
|
8430
8842
|
/**
|
|
8431
|
-
*
|
|
8843
|
+
* Backfill completed successfully
|
|
8432
8844
|
*/
|
|
8433
|
-
|
|
8845
|
+
200: BackfillSnapshotsResponse;
|
|
8434
8846
|
/**
|
|
8435
|
-
*
|
|
8847
|
+
* Invalid date format or range
|
|
8436
8848
|
*/
|
|
8437
8849
|
400: unknown;
|
|
8438
8850
|
/**
|
|
8439
|
-
*
|
|
8851
|
+
* User not authenticated
|
|
8440
8852
|
*/
|
|
8441
|
-
|
|
8442
|
-
};
|
|
8443
|
-
};
|
|
8444
|
-
};
|
|
8445
|
-
'/api/v1/{region}/bean/recurring/forecast': {
|
|
8446
|
-
get: {
|
|
8447
|
-
req: ForecastControllerGetForecastData;
|
|
8448
|
-
res: {
|
|
8853
|
+
401: unknown;
|
|
8449
8854
|
/**
|
|
8450
|
-
*
|
|
8855
|
+
* Backfill already in progress for this user
|
|
8451
8856
|
*/
|
|
8452
|
-
|
|
8857
|
+
409: unknown;
|
|
8453
8858
|
};
|
|
8454
8859
|
};
|
|
8455
8860
|
};
|
|
8456
|
-
'/api/v1/
|
|
8457
|
-
|
|
8458
|
-
req:
|
|
8861
|
+
'/api/v1/users': {
|
|
8862
|
+
delete: {
|
|
8863
|
+
req: UserControllerDeleteOwnUserData;
|
|
8459
8864
|
res: {
|
|
8460
8865
|
/**
|
|
8461
|
-
*
|
|
8462
|
-
*/
|
|
8463
|
-
200: TransactionRuleResponseDto;
|
|
8464
|
-
/**
|
|
8465
|
-
* Validation failed
|
|
8466
|
-
*/
|
|
8467
|
-
400: ApiProblemResponseDto;
|
|
8468
|
-
/**
|
|
8469
|
-
* Unauthorized
|
|
8866
|
+
* User deleted successfully
|
|
8470
8867
|
*/
|
|
8471
|
-
|
|
8868
|
+
204: void;
|
|
8472
8869
|
/**
|
|
8473
|
-
*
|
|
8870
|
+
* Invalid access token
|
|
8474
8871
|
*/
|
|
8475
|
-
|
|
8872
|
+
403: unknown;
|
|
8476
8873
|
};
|
|
8477
8874
|
};
|
|
8478
8875
|
get: {
|
|
8479
|
-
req:
|
|
8876
|
+
req: UserControllerGetUserData;
|
|
8480
8877
|
res: {
|
|
8481
8878
|
/**
|
|
8482
|
-
*
|
|
8483
|
-
*/
|
|
8484
|
-
200: TransactionRuleListResponseDto;
|
|
8485
|
-
/**
|
|
8486
|
-
* Unauthorized
|
|
8879
|
+
* User retrieved successfully
|
|
8487
8880
|
*/
|
|
8488
|
-
|
|
8881
|
+
200: unknown;
|
|
8489
8882
|
};
|
|
8490
8883
|
};
|
|
8491
|
-
};
|
|
8492
|
-
'/api/v1/{region}/bean/transaction-rules/validate': {
|
|
8493
8884
|
post: {
|
|
8494
|
-
req:
|
|
8885
|
+
req: UserControllerSignupUserData;
|
|
8495
8886
|
res: {
|
|
8496
8887
|
/**
|
|
8497
|
-
*
|
|
8888
|
+
* User created successfully
|
|
8498
8889
|
*/
|
|
8499
|
-
|
|
8890
|
+
201: SignupResponseDto;
|
|
8500
8891
|
/**
|
|
8501
|
-
*
|
|
8892
|
+
* Invalid Turnstile token (when Turnstile is enabled)
|
|
8502
8893
|
*/
|
|
8503
|
-
400:
|
|
8894
|
+
400: unknown;
|
|
8504
8895
|
/**
|
|
8505
|
-
*
|
|
8896
|
+
* User signup is disabled
|
|
8506
8897
|
*/
|
|
8507
|
-
|
|
8898
|
+
403: unknown;
|
|
8508
8899
|
};
|
|
8509
8900
|
};
|
|
8510
8901
|
};
|
|
8511
|
-
'/api/v1/{
|
|
8512
|
-
|
|
8513
|
-
req:
|
|
8902
|
+
'/api/v1/users/{id}': {
|
|
8903
|
+
delete: {
|
|
8904
|
+
req: UserControllerDeleteUserData;
|
|
8514
8905
|
res: {
|
|
8515
8906
|
/**
|
|
8516
|
-
*
|
|
8517
|
-
*/
|
|
8518
|
-
201: BulkCreateRulesResponseDto;
|
|
8519
|
-
/**
|
|
8520
|
-
* Invalid bulk create data
|
|
8907
|
+
* User deleted successfully
|
|
8521
8908
|
*/
|
|
8522
|
-
|
|
8909
|
+
204: void;
|
|
8523
8910
|
/**
|
|
8524
|
-
*
|
|
8911
|
+
* Cannot delete own account or insufficient permissions
|
|
8525
8912
|
*/
|
|
8526
|
-
|
|
8913
|
+
403: unknown;
|
|
8527
8914
|
};
|
|
8528
8915
|
};
|
|
8529
8916
|
};
|
|
8530
|
-
'/api/v1/{
|
|
8917
|
+
'/api/v1/users/{id}/info': {
|
|
8531
8918
|
get: {
|
|
8532
|
-
req:
|
|
8919
|
+
req: UserControllerGetUserInfoData;
|
|
8533
8920
|
res: {
|
|
8534
8921
|
/**
|
|
8535
|
-
*
|
|
8536
|
-
*/
|
|
8537
|
-
200: ExportRulesResponseDto;
|
|
8538
|
-
/**
|
|
8539
|
-
* Unsupported format
|
|
8922
|
+
* User info retrieved successfully
|
|
8540
8923
|
*/
|
|
8541
|
-
|
|
8924
|
+
200: unknown;
|
|
8542
8925
|
/**
|
|
8543
|
-
*
|
|
8926
|
+
* Cannot access other user info without admin permission
|
|
8544
8927
|
*/
|
|
8545
|
-
|
|
8928
|
+
403: unknown;
|
|
8546
8929
|
};
|
|
8547
8930
|
};
|
|
8548
8931
|
};
|
|
8549
|
-
'/api/v1/
|
|
8550
|
-
|
|
8551
|
-
req:
|
|
8932
|
+
'/api/v1/users/setting': {
|
|
8933
|
+
put: {
|
|
8934
|
+
req: UserControllerUpdateUserSettingData;
|
|
8552
8935
|
res: {
|
|
8553
8936
|
/**
|
|
8554
|
-
*
|
|
8937
|
+
* Settings updated successfully
|
|
8555
8938
|
*/
|
|
8556
|
-
200:
|
|
8939
|
+
200: unknown;
|
|
8557
8940
|
/**
|
|
8558
|
-
*
|
|
8941
|
+
* Insufficient permissions
|
|
8559
8942
|
*/
|
|
8560
|
-
|
|
8943
|
+
403: unknown;
|
|
8561
8944
|
};
|
|
8562
8945
|
};
|
|
8563
8946
|
};
|
|
8564
|
-
'/api/v1/
|
|
8947
|
+
'/api/v1/users/settings-by-page': {
|
|
8565
8948
|
get: {
|
|
8566
|
-
req:
|
|
8949
|
+
req: UserControllerGetAllUserSettingsByPageData;
|
|
8567
8950
|
res: {
|
|
8568
8951
|
/**
|
|
8569
|
-
*
|
|
8570
|
-
*/
|
|
8571
|
-
200: TransactionRuleResponseDto;
|
|
8572
|
-
/**
|
|
8573
|
-
* Unauthorized
|
|
8574
|
-
*/
|
|
8575
|
-
401: ApiProblemResponseDto;
|
|
8576
|
-
/**
|
|
8577
|
-
* Forbidden - not owner of rule
|
|
8578
|
-
*/
|
|
8579
|
-
403: ApiProblemResponseDto;
|
|
8580
|
-
/**
|
|
8581
|
-
* Rule not found
|
|
8952
|
+
* Settings list retrieved successfully
|
|
8582
8953
|
*/
|
|
8583
|
-
|
|
8954
|
+
200: unknown;
|
|
8584
8955
|
};
|
|
8585
8956
|
};
|
|
8586
|
-
|
|
8587
|
-
|
|
8957
|
+
};
|
|
8958
|
+
'/api/v1/users/asset-liability-summary': {
|
|
8959
|
+
get: {
|
|
8588
8960
|
res: {
|
|
8589
8961
|
/**
|
|
8590
|
-
*
|
|
8962
|
+
* Summary retrieved successfully
|
|
8591
8963
|
*/
|
|
8592
|
-
200:
|
|
8964
|
+
200: unknown;
|
|
8965
|
+
};
|
|
8966
|
+
};
|
|
8967
|
+
};
|
|
8968
|
+
'/api/v1/admin/properties': {
|
|
8969
|
+
get: {
|
|
8970
|
+
res: {
|
|
8593
8971
|
/**
|
|
8594
|
-
*
|
|
8972
|
+
* Properties retrieved successfully
|
|
8595
8973
|
*/
|
|
8596
|
-
|
|
8974
|
+
200: unknown;
|
|
8597
8975
|
/**
|
|
8598
8976
|
* Unauthorized
|
|
8599
8977
|
*/
|
|
8600
|
-
401:
|
|
8601
|
-
/**
|
|
8602
|
-
* Forbidden - not owner of rule
|
|
8603
|
-
*/
|
|
8604
|
-
403: ApiProblemResponseDto;
|
|
8605
|
-
/**
|
|
8606
|
-
* Rule not found
|
|
8607
|
-
*/
|
|
8608
|
-
404: ApiProblemResponseDto;
|
|
8978
|
+
401: unknown;
|
|
8609
8979
|
/**
|
|
8610
|
-
*
|
|
8980
|
+
* Forbidden - insufficient permissions
|
|
8611
8981
|
*/
|
|
8612
|
-
|
|
8982
|
+
403: unknown;
|
|
8613
8983
|
};
|
|
8614
8984
|
};
|
|
8615
|
-
|
|
8616
|
-
|
|
8985
|
+
};
|
|
8986
|
+
'/api/v1/admin/properties/{key}': {
|
|
8987
|
+
get: {
|
|
8988
|
+
req: PropertyControllerGetByKeyData;
|
|
8617
8989
|
res: {
|
|
8618
8990
|
/**
|
|
8619
|
-
*
|
|
8991
|
+
* Property retrieved successfully
|
|
8620
8992
|
*/
|
|
8621
|
-
|
|
8993
|
+
200: unknown;
|
|
8622
8994
|
/**
|
|
8623
8995
|
* Unauthorized
|
|
8624
8996
|
*/
|
|
8625
|
-
401:
|
|
8626
|
-
/**
|
|
8627
|
-
* Forbidden - not owner of rule
|
|
8628
|
-
*/
|
|
8629
|
-
403: ApiProblemResponseDto;
|
|
8997
|
+
401: unknown;
|
|
8630
8998
|
/**
|
|
8631
|
-
*
|
|
8999
|
+
* Forbidden - insufficient permissions
|
|
8632
9000
|
*/
|
|
8633
|
-
|
|
9001
|
+
403: unknown;
|
|
8634
9002
|
/**
|
|
8635
|
-
*
|
|
9003
|
+
* Property not found
|
|
8636
9004
|
*/
|
|
8637
|
-
|
|
9005
|
+
404: unknown;
|
|
8638
9006
|
};
|
|
8639
9007
|
};
|
|
8640
|
-
|
|
8641
|
-
|
|
8642
|
-
post: {
|
|
8643
|
-
req: TransactionRuleControllerTestData;
|
|
9008
|
+
put: {
|
|
9009
|
+
req: PropertyControllerUpdateData;
|
|
8644
9010
|
res: {
|
|
8645
9011
|
/**
|
|
8646
|
-
*
|
|
9012
|
+
* Property updated successfully
|
|
8647
9013
|
*/
|
|
8648
|
-
200:
|
|
9014
|
+
200: unknown;
|
|
8649
9015
|
/**
|
|
8650
9016
|
* Unauthorized
|
|
8651
9017
|
*/
|
|
8652
|
-
401:
|
|
8653
|
-
/**
|
|
8654
|
-
* Forbidden - not owner of rule
|
|
8655
|
-
*/
|
|
8656
|
-
403: ApiProblemResponseDto;
|
|
9018
|
+
401: unknown;
|
|
8657
9019
|
/**
|
|
8658
|
-
*
|
|
9020
|
+
* Forbidden - insufficient permissions
|
|
8659
9021
|
*/
|
|
8660
|
-
|
|
9022
|
+
403: unknown;
|
|
8661
9023
|
};
|
|
8662
9024
|
};
|
|
8663
|
-
};
|
|
8664
|
-
'/api/v1/users': {
|
|
8665
9025
|
delete: {
|
|
8666
|
-
req:
|
|
9026
|
+
req: PropertyControllerDeleteData;
|
|
8667
9027
|
res: {
|
|
8668
9028
|
/**
|
|
8669
|
-
*
|
|
9029
|
+
* Property deleted successfully
|
|
8670
9030
|
*/
|
|
8671
9031
|
204: void;
|
|
8672
9032
|
/**
|
|
8673
|
-
*
|
|
9033
|
+
* Unauthorized
|
|
9034
|
+
*/
|
|
9035
|
+
401: unknown;
|
|
9036
|
+
/**
|
|
9037
|
+
* Forbidden - insufficient permissions
|
|
8674
9038
|
*/
|
|
8675
9039
|
403: unknown;
|
|
8676
|
-
};
|
|
8677
|
-
};
|
|
8678
|
-
get: {
|
|
8679
|
-
req: UserControllerGetUserData;
|
|
8680
|
-
res: {
|
|
8681
9040
|
/**
|
|
8682
|
-
*
|
|
9041
|
+
* Property not found
|
|
8683
9042
|
*/
|
|
8684
|
-
|
|
9043
|
+
404: unknown;
|
|
8685
9044
|
};
|
|
8686
9045
|
};
|
|
9046
|
+
};
|
|
9047
|
+
'/api/v1/{region}/bean/transaction-rules': {
|
|
8687
9048
|
post: {
|
|
8688
|
-
req:
|
|
9049
|
+
req: TransactionRuleControllerCreateData;
|
|
8689
9050
|
res: {
|
|
8690
9051
|
/**
|
|
8691
|
-
*
|
|
9052
|
+
* Rule updated successfully (upsert mode)
|
|
8692
9053
|
*/
|
|
8693
|
-
|
|
9054
|
+
200: TransactionRuleResponseDto;
|
|
8694
9055
|
/**
|
|
8695
|
-
*
|
|
9056
|
+
* Validation failed
|
|
8696
9057
|
*/
|
|
8697
|
-
400:
|
|
9058
|
+
400: ApiProblemResponseDto;
|
|
8698
9059
|
/**
|
|
8699
|
-
*
|
|
9060
|
+
* Unauthorized
|
|
8700
9061
|
*/
|
|
8701
|
-
|
|
9062
|
+
401: ApiProblemResponseDto;
|
|
9063
|
+
/**
|
|
9064
|
+
* Resource conflict - another process is updating this rule
|
|
9065
|
+
*/
|
|
9066
|
+
409: ApiProblemResponseDto;
|
|
8702
9067
|
};
|
|
8703
9068
|
};
|
|
8704
|
-
|
|
8705
|
-
|
|
8706
|
-
delete: {
|
|
8707
|
-
req: UserControllerDeleteUserData;
|
|
9069
|
+
get: {
|
|
9070
|
+
req: TransactionRuleControllerListData;
|
|
8708
9071
|
res: {
|
|
8709
9072
|
/**
|
|
8710
|
-
*
|
|
9073
|
+
* List of rules
|
|
8711
9074
|
*/
|
|
8712
|
-
|
|
9075
|
+
200: TransactionRuleListResponseDto;
|
|
8713
9076
|
/**
|
|
8714
|
-
*
|
|
9077
|
+
* Unauthorized
|
|
8715
9078
|
*/
|
|
8716
|
-
|
|
9079
|
+
401: ApiProblemResponseDto;
|
|
8717
9080
|
};
|
|
8718
9081
|
};
|
|
8719
9082
|
};
|
|
8720
|
-
'/api/v1/
|
|
8721
|
-
|
|
8722
|
-
req:
|
|
9083
|
+
'/api/v1/{region}/bean/transaction-rules/validate': {
|
|
9084
|
+
post: {
|
|
9085
|
+
req: TransactionRuleControllerValidateData;
|
|
8723
9086
|
res: {
|
|
8724
9087
|
/**
|
|
8725
|
-
*
|
|
9088
|
+
* Validation result
|
|
8726
9089
|
*/
|
|
8727
|
-
200:
|
|
9090
|
+
200: ValidateRuleResponseDto;
|
|
8728
9091
|
/**
|
|
8729
|
-
*
|
|
9092
|
+
* Validation failed
|
|
8730
9093
|
*/
|
|
8731
|
-
|
|
9094
|
+
400: ApiProblemResponseDto;
|
|
9095
|
+
/**
|
|
9096
|
+
* Unauthorized
|
|
9097
|
+
*/
|
|
9098
|
+
401: ApiProblemResponseDto;
|
|
8732
9099
|
};
|
|
8733
9100
|
};
|
|
8734
9101
|
};
|
|
8735
|
-
'/api/v1/
|
|
8736
|
-
|
|
8737
|
-
req:
|
|
9102
|
+
'/api/v1/{region}/bean/transaction-rules/bulk': {
|
|
9103
|
+
post: {
|
|
9104
|
+
req: TransactionRuleControllerBulkCreateData;
|
|
8738
9105
|
res: {
|
|
8739
9106
|
/**
|
|
8740
|
-
*
|
|
9107
|
+
* Bulk create completed
|
|
8741
9108
|
*/
|
|
8742
|
-
|
|
9109
|
+
201: BulkCreateRulesResponseDto;
|
|
8743
9110
|
/**
|
|
8744
|
-
*
|
|
9111
|
+
* Invalid bulk create data
|
|
8745
9112
|
*/
|
|
8746
|
-
|
|
9113
|
+
400: ApiProblemResponseDto;
|
|
9114
|
+
/**
|
|
9115
|
+
* Unauthorized
|
|
9116
|
+
*/
|
|
9117
|
+
401: ApiProblemResponseDto;
|
|
8747
9118
|
};
|
|
8748
9119
|
};
|
|
8749
9120
|
};
|
|
8750
|
-
'/api/v1/
|
|
9121
|
+
'/api/v1/{region}/bean/transaction-rules/export/{format}': {
|
|
8751
9122
|
get: {
|
|
8752
|
-
req:
|
|
9123
|
+
req: TransactionRuleControllerExportData;
|
|
8753
9124
|
res: {
|
|
8754
9125
|
/**
|
|
8755
|
-
*
|
|
9126
|
+
* Exported rules
|
|
8756
9127
|
*/
|
|
8757
|
-
200:
|
|
9128
|
+
200: ExportRulesResponseDto;
|
|
9129
|
+
/**
|
|
9130
|
+
* Unsupported format
|
|
9131
|
+
*/
|
|
9132
|
+
400: ApiProblemResponseDto;
|
|
9133
|
+
/**
|
|
9134
|
+
* Unauthorized
|
|
9135
|
+
*/
|
|
9136
|
+
401: ApiProblemResponseDto;
|
|
8758
9137
|
};
|
|
8759
9138
|
};
|
|
8760
9139
|
};
|
|
8761
|
-
'/api/v1/
|
|
9140
|
+
'/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
|
|
8762
9141
|
get: {
|
|
9142
|
+
req: TransactionRuleControllerGetStatisticsData;
|
|
8763
9143
|
res: {
|
|
8764
9144
|
/**
|
|
8765
|
-
*
|
|
9145
|
+
* Rule statistics
|
|
8766
9146
|
*/
|
|
8767
|
-
200:
|
|
9147
|
+
200: RuleStatisticsResponseDto;
|
|
9148
|
+
/**
|
|
9149
|
+
* Unauthorized
|
|
9150
|
+
*/
|
|
9151
|
+
401: ApiProblemResponseDto;
|
|
8768
9152
|
};
|
|
8769
9153
|
};
|
|
8770
9154
|
};
|
|
8771
|
-
'/api/v1/
|
|
9155
|
+
'/api/v1/{region}/bean/transaction-rules/{ruleId}': {
|
|
8772
9156
|
get: {
|
|
9157
|
+
req: TransactionRuleControllerGetDetailData;
|
|
8773
9158
|
res: {
|
|
8774
9159
|
/**
|
|
8775
|
-
*
|
|
9160
|
+
* Rule details
|
|
8776
9161
|
*/
|
|
8777
|
-
200:
|
|
9162
|
+
200: TransactionRuleResponseDto;
|
|
8778
9163
|
/**
|
|
8779
9164
|
* Unauthorized
|
|
8780
9165
|
*/
|
|
8781
|
-
401:
|
|
9166
|
+
401: ApiProblemResponseDto;
|
|
8782
9167
|
/**
|
|
8783
|
-
* Forbidden -
|
|
9168
|
+
* Forbidden - not owner of rule
|
|
8784
9169
|
*/
|
|
8785
|
-
403:
|
|
9170
|
+
403: ApiProblemResponseDto;
|
|
9171
|
+
/**
|
|
9172
|
+
* Rule not found
|
|
9173
|
+
*/
|
|
9174
|
+
404: ApiProblemResponseDto;
|
|
8786
9175
|
};
|
|
8787
9176
|
};
|
|
8788
|
-
|
|
8789
|
-
|
|
8790
|
-
get: {
|
|
8791
|
-
req: PropertyControllerGetByKeyData;
|
|
9177
|
+
put: {
|
|
9178
|
+
req: TransactionRuleControllerUpdateData;
|
|
8792
9179
|
res: {
|
|
8793
9180
|
/**
|
|
8794
|
-
*
|
|
9181
|
+
* Rule updated successfully
|
|
8795
9182
|
*/
|
|
8796
|
-
200:
|
|
9183
|
+
200: TransactionRuleResponseDto;
|
|
9184
|
+
/**
|
|
9185
|
+
* Validation failed
|
|
9186
|
+
*/
|
|
9187
|
+
400: ApiProblemResponseDto;
|
|
8797
9188
|
/**
|
|
8798
9189
|
* Unauthorized
|
|
8799
9190
|
*/
|
|
8800
|
-
401:
|
|
9191
|
+
401: ApiProblemResponseDto;
|
|
8801
9192
|
/**
|
|
8802
|
-
* Forbidden -
|
|
9193
|
+
* Forbidden - not owner of rule
|
|
8803
9194
|
*/
|
|
8804
|
-
403:
|
|
9195
|
+
403: ApiProblemResponseDto;
|
|
8805
9196
|
/**
|
|
8806
|
-
*
|
|
9197
|
+
* Rule not found
|
|
8807
9198
|
*/
|
|
8808
|
-
404:
|
|
9199
|
+
404: ApiProblemResponseDto;
|
|
9200
|
+
/**
|
|
9201
|
+
* Resource conflict - rule is being modified by another process
|
|
9202
|
+
*/
|
|
9203
|
+
409: ApiProblemResponseDto;
|
|
8809
9204
|
};
|
|
8810
9205
|
};
|
|
8811
|
-
|
|
8812
|
-
req:
|
|
9206
|
+
delete: {
|
|
9207
|
+
req: TransactionRuleControllerDeleteData;
|
|
8813
9208
|
res: {
|
|
8814
9209
|
/**
|
|
8815
|
-
*
|
|
9210
|
+
* Rule deleted successfully
|
|
8816
9211
|
*/
|
|
8817
|
-
|
|
9212
|
+
204: void;
|
|
8818
9213
|
/**
|
|
8819
9214
|
* Unauthorized
|
|
8820
9215
|
*/
|
|
8821
|
-
401:
|
|
9216
|
+
401: ApiProblemResponseDto;
|
|
8822
9217
|
/**
|
|
8823
|
-
* Forbidden -
|
|
9218
|
+
* Forbidden - not owner of rule
|
|
8824
9219
|
*/
|
|
8825
|
-
403:
|
|
9220
|
+
403: ApiProblemResponseDto;
|
|
9221
|
+
/**
|
|
9222
|
+
* Rule not found
|
|
9223
|
+
*/
|
|
9224
|
+
404: ApiProblemResponseDto;
|
|
9225
|
+
/**
|
|
9226
|
+
* Resource conflict - rule is being modified by another process
|
|
9227
|
+
*/
|
|
9228
|
+
409: ApiProblemResponseDto;
|
|
8826
9229
|
};
|
|
8827
9230
|
};
|
|
8828
|
-
|
|
8829
|
-
|
|
9231
|
+
};
|
|
9232
|
+
'/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
|
|
9233
|
+
post: {
|
|
9234
|
+
req: TransactionRuleControllerTestData;
|
|
8830
9235
|
res: {
|
|
8831
9236
|
/**
|
|
8832
|
-
*
|
|
9237
|
+
* Test result
|
|
8833
9238
|
*/
|
|
8834
|
-
|
|
9239
|
+
200: TestRuleResponseDto;
|
|
8835
9240
|
/**
|
|
8836
9241
|
* Unauthorized
|
|
8837
9242
|
*/
|
|
8838
|
-
401:
|
|
9243
|
+
401: ApiProblemResponseDto;
|
|
8839
9244
|
/**
|
|
8840
|
-
* Forbidden -
|
|
9245
|
+
* Forbidden - not owner of rule
|
|
8841
9246
|
*/
|
|
8842
|
-
403:
|
|
9247
|
+
403: ApiProblemResponseDto;
|
|
8843
9248
|
/**
|
|
8844
|
-
*
|
|
9249
|
+
* Rule not found
|
|
8845
9250
|
*/
|
|
8846
|
-
404:
|
|
9251
|
+
404: ApiProblemResponseDto;
|
|
8847
9252
|
};
|
|
8848
9253
|
};
|
|
8849
9254
|
};
|
|
@@ -9399,9 +9804,9 @@ export type $OpenApiTs = {
|
|
|
9399
9804
|
req: PlatformControllerMatchPlatformsData;
|
|
9400
9805
|
res: {
|
|
9401
9806
|
/**
|
|
9402
|
-
*
|
|
9807
|
+
* Matching platforms with overall match type and truncation flag
|
|
9403
9808
|
*/
|
|
9404
|
-
200:
|
|
9809
|
+
200: PlatformMatchResponseDto;
|
|
9405
9810
|
};
|
|
9406
9811
|
};
|
|
9407
9812
|
};
|
|
@@ -9523,78 +9928,6 @@ export type $OpenApiTs = {
|
|
|
9523
9928
|
};
|
|
9524
9929
|
};
|
|
9525
9930
|
};
|
|
9526
|
-
'/api/v1/{region}/reporting/portfolio/trends': {
|
|
9527
|
-
get: {
|
|
9528
|
-
req: ReportingControllerGetPortfolioTrendsData;
|
|
9529
|
-
res: {
|
|
9530
|
-
/**
|
|
9531
|
-
* Trends retrieved successfully
|
|
9532
|
-
*/
|
|
9533
|
-
200: PortfolioTrendsResponseDto;
|
|
9534
|
-
/**
|
|
9535
|
-
* User not authenticated
|
|
9536
|
-
*/
|
|
9537
|
-
401: unknown;
|
|
9538
|
-
};
|
|
9539
|
-
};
|
|
9540
|
-
};
|
|
9541
|
-
'/api/v1/{region}/reporting/cash-flow/trends': {
|
|
9542
|
-
get: {
|
|
9543
|
-
req: ReportingControllerGetCashFlowTrendsData;
|
|
9544
|
-
res: {
|
|
9545
|
-
/**
|
|
9546
|
-
* Cash-flow trends retrieved successfully
|
|
9547
|
-
*/
|
|
9548
|
-
200: CashFlowTrendsResponseDto;
|
|
9549
|
-
/**
|
|
9550
|
-
* User not authenticated
|
|
9551
|
-
*/
|
|
9552
|
-
401: unknown;
|
|
9553
|
-
};
|
|
9554
|
-
};
|
|
9555
|
-
};
|
|
9556
|
-
'/api/v1/{region}/reporting/snapshots/generate': {
|
|
9557
|
-
post: {
|
|
9558
|
-
req: ReportingControllerGenerateSnapshotData;
|
|
9559
|
-
res: {
|
|
9560
|
-
/**
|
|
9561
|
-
* Snapshot generated successfully
|
|
9562
|
-
*/
|
|
9563
|
-
200: GenerateSnapshotResponse;
|
|
9564
|
-
/**
|
|
9565
|
-
* Invalid date format
|
|
9566
|
-
*/
|
|
9567
|
-
400: unknown;
|
|
9568
|
-
/**
|
|
9569
|
-
* User not authenticated
|
|
9570
|
-
*/
|
|
9571
|
-
401: unknown;
|
|
9572
|
-
};
|
|
9573
|
-
};
|
|
9574
|
-
};
|
|
9575
|
-
'/api/v1/{region}/reporting/snapshots/backfill': {
|
|
9576
|
-
post: {
|
|
9577
|
-
req: ReportingControllerBackfillSnapshotsData;
|
|
9578
|
-
res: {
|
|
9579
|
-
/**
|
|
9580
|
-
* Backfill completed successfully
|
|
9581
|
-
*/
|
|
9582
|
-
200: BackfillSnapshotsResponse;
|
|
9583
|
-
/**
|
|
9584
|
-
* Invalid date format or range
|
|
9585
|
-
*/
|
|
9586
|
-
400: unknown;
|
|
9587
|
-
/**
|
|
9588
|
-
* User not authenticated
|
|
9589
|
-
*/
|
|
9590
|
-
401: unknown;
|
|
9591
|
-
/**
|
|
9592
|
-
* Backfill already in progress for this user
|
|
9593
|
-
*/
|
|
9594
|
-
409: unknown;
|
|
9595
|
-
};
|
|
9596
|
-
};
|
|
9597
|
-
};
|
|
9598
9931
|
'/api/v1/auth/api-keys': {
|
|
9599
9932
|
post: {
|
|
9600
9933
|
res: {
|
|
@@ -9616,7 +9949,7 @@ export type $OpenApiTs = {
|
|
|
9616
9949
|
/**
|
|
9617
9950
|
* Login successful
|
|
9618
9951
|
*/
|
|
9619
|
-
200:
|
|
9952
|
+
200: AnonymousLoginResponseDto;
|
|
9620
9953
|
/**
|
|
9621
9954
|
* Invalid access token
|
|
9622
9955
|
*/
|
|
@@ -9763,4 +10096,30 @@ export type $OpenApiTs = {
|
|
|
9763
10096
|
};
|
|
9764
10097
|
};
|
|
9765
10098
|
};
|
|
10099
|
+
'/api/v1/market/symbols/search': {
|
|
10100
|
+
get: {
|
|
10101
|
+
req: SymbolControllerSearchData;
|
|
10102
|
+
res: {
|
|
10103
|
+
/**
|
|
10104
|
+
* Ranked search results
|
|
10105
|
+
*/
|
|
10106
|
+
200: Array<SymbolSearchResultDto>;
|
|
10107
|
+
};
|
|
10108
|
+
};
|
|
10109
|
+
};
|
|
10110
|
+
'/api/v1/market/symbols/{symbol}/quote': {
|
|
10111
|
+
get: {
|
|
10112
|
+
req: SymbolControllerGetQuoteData;
|
|
10113
|
+
res: {
|
|
10114
|
+
/**
|
|
10115
|
+
* Symbol quote
|
|
10116
|
+
*/
|
|
10117
|
+
200: SymbolQuoteDto;
|
|
10118
|
+
/**
|
|
10119
|
+
* Symbol not found in the openbb catalog
|
|
10120
|
+
*/
|
|
10121
|
+
404: unknown;
|
|
10122
|
+
};
|
|
10123
|
+
};
|
|
10124
|
+
};
|
|
9766
10125
|
};
|