@firela/api-types 0.0.0-canary.9256c41b → 0.0.0-canary.97006feb

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.
@@ -2701,6 +2701,318 @@ export type ForecastResponseDto = {
2701
2701
  periodEnd: string;
2702
2702
  };
2703
2703
 
2704
+ export type CurrencyBalanceDto = {
2705
+ /**
2706
+ * ISO 4217 currency code
2707
+ */
2708
+ currency: string;
2709
+ /**
2710
+ * Balance amount
2711
+ */
2712
+ balance: string;
2713
+ };
2714
+
2715
+ export type TimeSeriesPointDto = {
2716
+ /**
2717
+ * Date in YYYY-MM-DD format
2718
+ */
2719
+ date: string;
2720
+ /**
2721
+ * Value at this date (in base currency)
2722
+ */
2723
+ value: string;
2724
+ /**
2725
+ * Change from previous point
2726
+ */
2727
+ change?: {
2728
+ [key: string]: unknown;
2729
+ };
2730
+ /**
2731
+ * Total assets at this date (in base currency)
2732
+ */
2733
+ assets?: string;
2734
+ /**
2735
+ * Total liabilities at this date (in base currency)
2736
+ */
2737
+ liabilities?: string;
2738
+ /**
2739
+ * Multi-currency breakdown for this point
2740
+ */
2741
+ byCurrency?: Array<CurrencyBalanceDto>;
2742
+ };
2743
+
2744
+ export type TrendSummaryDto = {
2745
+ /**
2746
+ * Value at start of period
2747
+ */
2748
+ startValue: string;
2749
+ /**
2750
+ * Value at end of period
2751
+ */
2752
+ endValue: string;
2753
+ /**
2754
+ * Total change over period
2755
+ */
2756
+ totalChange: string;
2757
+ /**
2758
+ * Total change percentage
2759
+ */
2760
+ totalChangePercentage: string;
2761
+ };
2762
+
2763
+ export type MultiCurrencyPointDto = {
2764
+ /**
2765
+ * Date in YYYY-MM-DD format
2766
+ */
2767
+ date: string;
2768
+ /**
2769
+ * Balances by currency
2770
+ */
2771
+ byCurrency: Array<CurrencyBalanceDto>;
2772
+ };
2773
+
2774
+ export type PortfolioTrendsResponseDto = {
2775
+ /**
2776
+ * Time series data points
2777
+ */
2778
+ series: Array<TimeSeriesPointDto>;
2779
+ /**
2780
+ * Period summary
2781
+ */
2782
+ summary: TrendSummaryDto;
2783
+ /**
2784
+ * Period requested
2785
+ */
2786
+ period: string;
2787
+ /**
2788
+ * Data granularity
2789
+ */
2790
+ granularity: string;
2791
+ /**
2792
+ * Base currency for converted values
2793
+ */
2794
+ currency: string;
2795
+ /**
2796
+ * Multi-currency time series (each point has currency breakdown)
2797
+ */
2798
+ byCurrency?: Array<MultiCurrencyPointDto>;
2799
+ /**
2800
+ * Exchange rate warnings
2801
+ */
2802
+ warnings?: Array<ExchangeRateWarningDto>;
2803
+ };
2804
+
2805
+ export type CashFlowPointDto = {
2806
+ /**
2807
+ * Month key (YYYY-MM)
2808
+ */
2809
+ month: string;
2810
+ /**
2811
+ * Income in base currency (absolute, converted)
2812
+ */
2813
+ income: string;
2814
+ /**
2815
+ * Expense in base currency (absolute, converted)
2816
+ */
2817
+ expense: string;
2818
+ /**
2819
+ * netSavings = income − expense (savings positive)
2820
+ */
2821
+ netSavings: string;
2822
+ };
2823
+
2824
+ export type CashFlowTrendSummaryDto = {
2825
+ /**
2826
+ * Total income across the period
2827
+ */
2828
+ totalIncome: string;
2829
+ /**
2830
+ * Total expense across the period
2831
+ */
2832
+ totalExpense: string;
2833
+ /**
2834
+ * income − expense across the period
2835
+ */
2836
+ totalNetSavings: string;
2837
+ /**
2838
+ * totalNetSavings divided by the window length (N months, incl. zero-filled)
2839
+ */
2840
+ averageMonthlyNetSavings: string;
2841
+ };
2842
+
2843
+ export type CashFlowTrendsResponseDto = {
2844
+ /**
2845
+ * Monthly cash-flow series (fixed N-month window, zero-filled)
2846
+ */
2847
+ series: Array<CashFlowPointDto>;
2848
+ /**
2849
+ * Period totals
2850
+ */
2851
+ summary: CashFlowTrendSummaryDto;
2852
+ /**
2853
+ * Period requested
2854
+ */
2855
+ period: string;
2856
+ /**
2857
+ * Data granularity (v1 returns month buckets)
2858
+ */
2859
+ granularity: string;
2860
+ /**
2861
+ * Base currency for converted values
2862
+ */
2863
+ currency: string;
2864
+ /**
2865
+ * Exchange rate warnings (e.g. missing rate for a currency)
2866
+ */
2867
+ warnings?: Array<ExchangeRateWarningDto>;
2868
+ };
2869
+
2870
+ export type GenerateSnapshotBody = unknown;
2871
+
2872
+ export type GenerateSnapshotResponse = unknown;
2873
+
2874
+ export type BackfillSnapshotsBody = unknown;
2875
+
2876
+ export type BackfillSnapshotsResponse = unknown;
2877
+
2878
+ export type DeleteOwnUserDto = {
2879
+ /**
2880
+ * Access token for user verification
2881
+ */
2882
+ accessToken: string;
2883
+ };
2884
+
2885
+ export type SignupDto = {
2886
+ /**
2887
+ * Cloudflare Turnstile verification token (optional when Turnstile disabled)
2888
+ */
2889
+ turnstileToken?: string;
2890
+ };
2891
+
2892
+ export type SignupResponseDto = {
2893
+ /**
2894
+ * JWT auth token
2895
+ */
2896
+ authToken: string;
2897
+ /**
2898
+ * Auto-generated access token
2899
+ */
2900
+ accessToken: string;
2901
+ /**
2902
+ * Assigned user role
2903
+ */
2904
+ role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2905
+ };
2906
+
2907
+ /**
2908
+ * Assigned user role
2909
+ */
2910
+ export type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
2911
+
2912
+ export type UpdateUserSettingDto = {
2913
+ /**
2914
+ * Security ID
2915
+ */
2916
+ secId?: number;
2917
+ /**
2918
+ * Annual interest rate
2919
+ */
2920
+ annualInterestRate?: number;
2921
+ /**
2922
+ * Currency code
2923
+ */
2924
+ currency?: string;
2925
+ /**
2926
+ * Base currency code
2927
+ */
2928
+ baseCurrency?: string;
2929
+ /**
2930
+ * Benchmark symbol
2931
+ */
2932
+ benchmark?: string;
2933
+ /**
2934
+ * Color scheme
2935
+ */
2936
+ colorScheme?: 'DARK' | 'LIGHT';
2937
+ /**
2938
+ * Date range filter
2939
+ */
2940
+ dateRange?: string;
2941
+ /**
2942
+ * Emergency fund amount
2943
+ */
2944
+ emergencyFund?: number;
2945
+ /**
2946
+ * Account filter IDs
2947
+ */
2948
+ 'filters.accounts'?: Array<string>;
2949
+ /**
2950
+ * Asset class filters
2951
+ */
2952
+ 'filters.assetClasses'?: Array<string>;
2953
+ /**
2954
+ * Data source filter
2955
+ */
2956
+ 'filters.dataSource'?: string;
2957
+ /**
2958
+ * Symbol filter
2959
+ */
2960
+ 'filters.symbol'?: string;
2961
+ /**
2962
+ * Tag filters
2963
+ */
2964
+ 'filters.tags'?: Array<string>;
2965
+ /**
2966
+ * Enable experimental features
2967
+ */
2968
+ isExperimentalFeatures?: boolean;
2969
+ /**
2970
+ * Enable restricted view mode
2971
+ */
2972
+ isRestrictedView?: boolean;
2973
+ /**
2974
+ * Language code
2975
+ */
2976
+ language?: string;
2977
+ /**
2978
+ * Locale code
2979
+ */
2980
+ locale?: string;
2981
+ /**
2982
+ * Projected total amount
2983
+ */
2984
+ projectedTotalAmount?: number;
2985
+ /**
2986
+ * Retirement date in ISO 8601 format
2987
+ */
2988
+ retirementDate?: string;
2989
+ /**
2990
+ * Savings rate percentage
2991
+ */
2992
+ savingsRate?: number;
2993
+ /**
2994
+ * View mode
2995
+ */
2996
+ viewMode?: 'DEFAULT' | 'ZEN';
2997
+ };
2998
+
2999
+ /**
3000
+ * Color scheme
3001
+ */
3002
+ export type colorScheme = 'DARK' | 'LIGHT';
3003
+
3004
+ /**
3005
+ * View mode
3006
+ */
3007
+ export type viewMode = 'DEFAULT' | 'ZEN';
3008
+
3009
+ export type UpdatePropertyDto = {
3010
+ /**
3011
+ * Property value
3012
+ */
3013
+ value: string;
3014
+ };
3015
+
2704
3016
  export type CreateTransactionRuleDto = {
2705
3017
  name: string;
2706
3018
  description?: string;
@@ -2995,203 +3307,65 @@ export type period = '7d' | '30d' | '90d';
2995
3307
 
2996
3308
  export type UpdateTransactionRuleDto = {
2997
3309
  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 SignupResponseDto = {
3074
- /**
3075
- * JWT auth token
3076
- */
3077
- authToken: string;
3078
- /**
3079
- * Auto-generated access token
3080
- */
3081
- accessToken: string;
3082
- /**
3083
- * Assigned user role
3084
- */
3085
- role: 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
3086
- };
3087
-
3088
- /**
3089
- * Assigned user role
3090
- */
3091
- export type role = 'USER' | 'ADMIN' | 'DEMO' | 'INACTIVE' | 'PAID' | 'OPS';
3092
-
3093
- export type UpdateUserSettingDto = {
3094
- /**
3095
- * Security ID
3096
- */
3097
- secId?: number;
3098
- /**
3099
- * Annual interest rate
3100
- */
3101
- annualInterestRate?: number;
3102
- /**
3103
- * Currency code
3104
- */
3105
- currency?: string;
3106
- /**
3107
- * Base currency code
3108
- */
3109
- baseCurrency?: string;
3110
- /**
3111
- * Benchmark symbol
3112
- */
3113
- benchmark?: string;
3114
- /**
3115
- * Color scheme
3116
- */
3117
- colorScheme?: 'DARK' | 'LIGHT';
3118
- /**
3119
- * Date range filter
3120
- */
3121
- dateRange?: string;
3122
- /**
3123
- * Emergency fund amount
3124
- */
3125
- emergencyFund?: number;
3126
- /**
3127
- * Account filter IDs
3128
- */
3129
- 'filters.accounts'?: Array<string>;
3130
- /**
3131
- * Asset class filters
3132
- */
3133
- 'filters.assetClasses'?: Array<string>;
3134
- /**
3135
- * Data source filter
3136
- */
3137
- 'filters.dataSource'?: string;
3138
- /**
3139
- * Symbol filter
3140
- */
3141
- 'filters.symbol'?: string;
3142
- /**
3143
- * Tag filters
3144
- */
3145
- 'filters.tags'?: Array<string>;
3310
+ description?: string;
3311
+ narrationKeywords?: Array<unknown[]>;
3312
+ payeeKeywords?: Array<unknown[]>;
3313
+ categoryKeywords?: Array<unknown[]>;
3146
3314
  /**
3147
- * Enable experimental features
3315
+ * Payment method keywords (e.g., HuaBei, YuEBao)
3148
3316
  */
3149
- isExperimentalFeatures?: boolean;
3317
+ methodKeywords?: Array<unknown[]>;
3150
3318
  /**
3151
- * Enable restricted view mode
3319
+ * Destination account for expenses/income (e.g., Expenses:Food:Coffee)
3152
3320
  */
3153
- isRestrictedView?: boolean;
3321
+ categoryAccount?: string;
3322
+ matchLogic?: 'OR' | 'AND';
3154
3323
  /**
3155
- * Language code
3324
+ * Minimum transaction amount (inclusive)
3156
3325
  */
3157
- language?: string;
3326
+ amountMin?: number;
3158
3327
  /**
3159
- * Locale code
3328
+ * Maximum transaction amount (inclusive)
3160
3329
  */
3161
- locale?: string;
3330
+ amountMax?: number;
3331
+ priority?: number;
3162
3332
  /**
3163
- * Projected total amount
3333
+ * Enable or disable the rule
3164
3334
  */
3165
- projectedTotalAmount?: number;
3335
+ enabled?: boolean;
3336
+ additionalTags?: Array<unknown[]>;
3337
+ additionalMetadata?: {
3338
+ [key: string]: unknown;
3339
+ };
3340
+ };
3341
+
3342
+ export type TestRuleDto = {
3343
+ narration: string;
3344
+ payee?: string;
3345
+ categoryAccount?: string;
3346
+ amount?: number;
3347
+ currency?: string;
3348
+ };
3349
+
3350
+ export type TestRuleResponseDto = {
3166
3351
  /**
3167
- * Retirement date in ISO 8601 format
3352
+ * Rule ID that was tested
3168
3353
  */
3169
- retirementDate?: string;
3354
+ ruleId: string;
3170
3355
  /**
3171
- * Savings rate percentage
3356
+ * Whether the rule matched the test data
3172
3357
  */
3173
- savingsRate?: number;
3358
+ matches: boolean;
3174
3359
  /**
3175
- * View mode
3360
+ * Match confidence score (0-1)
3176
3361
  */
3177
- viewMode?: 'DEFAULT' | 'ZEN';
3178
- };
3179
-
3180
- /**
3181
- * Color scheme
3182
- */
3183
- export type colorScheme = 'DARK' | 'LIGHT';
3184
-
3185
- /**
3186
- * View mode
3187
- */
3188
- export type viewMode = 'DEFAULT' | 'ZEN';
3189
-
3190
- export type UpdatePropertyDto = {
3362
+ confidence: number;
3191
3363
  /**
3192
- * Property value
3364
+ * Details of which fields matched
3193
3365
  */
3194
- value: string;
3366
+ matchDetails: {
3367
+ [key: string]: unknown;
3368
+ };
3195
3369
  };
3196
3370
 
3197
3371
  export type CreateBeanEventDto = {
@@ -4314,7 +4488,8 @@ export type NlpResponseDto = {
4314
4488
  | 'confirm_rule'
4315
4489
  | 'confirm_account'
4316
4490
  | 'confirm_payee'
4317
- | 'cancel';
4491
+ | 'cancel'
4492
+ | 'aborted';
4318
4493
  /**
4319
4494
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
4320
4495
  */
@@ -4428,7 +4603,8 @@ export type action2 =
4428
4603
  | 'confirm_rule'
4429
4604
  | 'confirm_account'
4430
4605
  | 'confirm_payee'
4431
- | 'cancel';
4606
+ | 'cancel'
4607
+ | 'aborted';
4432
4608
 
4433
4609
  /**
4434
4610
  * Transaction intent detected by EntityRouter (v6.0: 5 core intents). Frontend uses this to render scenario-specific form fields.
@@ -5336,203 +5512,29 @@ export type HoldingPnlWarningDto = {
5336
5512
  * Warning type
5337
5513
  */
5338
5514
  export type type4 =
5339
- | 'MISSING_COST_FX_RATE'
5340
- | 'MISSING_MARKET_FX_RATE'
5341
- | 'MISSING_SALE_PRICE'
5342
- | 'MISSING_REALIZED_FX_RATE'
5343
- | 'OVERSOLD_LOTS'
5344
- | 'NO_PRICE'
5345
- | 'MIXED_COST_CURRENCY';
5346
-
5347
- export type HoldingPnlResponseDto = {
5348
- asOfDate: string;
5349
- baseCurrency: string;
5350
- /**
5351
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
5352
- */
5353
- method: 'average' | 'FIFO';
5354
- rows: Array<HoldingPnlRowDto>;
5355
- warnings: Array<HoldingPnlWarningDto>;
5356
- };
5357
-
5358
- /**
5359
- * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
5360
- */
5361
- export type method = 'average' | 'FIFO';
5362
-
5363
- export type CurrencyBalanceDto = {
5364
- /**
5365
- * ISO 4217 currency code
5366
- */
5367
- currency: string;
5368
- /**
5369
- * Balance amount
5370
- */
5371
- balance: string;
5372
- };
5373
-
5374
- export type TimeSeriesPointDto = {
5375
- /**
5376
- * Date in YYYY-MM-DD format
5377
- */
5378
- date: string;
5379
- /**
5380
- * Value at this date (in base currency)
5381
- */
5382
- value: string;
5383
- /**
5384
- * Change from previous point
5385
- */
5386
- change?: {
5387
- [key: string]: unknown;
5388
- };
5389
- /**
5390
- * Total assets at this date (in base currency)
5391
- */
5392
- assets?: string;
5393
- /**
5394
- * Total liabilities at this date (in base currency)
5395
- */
5396
- liabilities?: string;
5397
- /**
5398
- * Multi-currency breakdown for this point
5399
- */
5400
- byCurrency?: Array<CurrencyBalanceDto>;
5401
- };
5402
-
5403
- export type TrendSummaryDto = {
5404
- /**
5405
- * Value at start of period
5406
- */
5407
- startValue: string;
5408
- /**
5409
- * Value at end of period
5410
- */
5411
- endValue: string;
5412
- /**
5413
- * Total change over period
5414
- */
5415
- totalChange: string;
5416
- /**
5417
- * Total change percentage
5418
- */
5419
- totalChangePercentage: string;
5420
- };
5421
-
5422
- export type MultiCurrencyPointDto = {
5423
- /**
5424
- * Date in YYYY-MM-DD format
5425
- */
5426
- date: string;
5427
- /**
5428
- * Balances by currency
5429
- */
5430
- byCurrency: Array<CurrencyBalanceDto>;
5431
- };
5432
-
5433
- export type PortfolioTrendsResponseDto = {
5434
- /**
5435
- * Time series data points
5436
- */
5437
- series: Array<TimeSeriesPointDto>;
5438
- /**
5439
- * Period summary
5440
- */
5441
- summary: TrendSummaryDto;
5442
- /**
5443
- * Period requested
5444
- */
5445
- period: string;
5446
- /**
5447
- * Data granularity
5448
- */
5449
- granularity: string;
5450
- /**
5451
- * Base currency for converted values
5452
- */
5453
- currency: string;
5454
- /**
5455
- * Multi-currency time series (each point has currency breakdown)
5456
- */
5457
- byCurrency?: Array<MultiCurrencyPointDto>;
5458
- /**
5459
- * Exchange rate warnings
5460
- */
5461
- warnings?: Array<ExchangeRateWarningDto>;
5462
- };
5463
-
5464
- export type CashFlowPointDto = {
5465
- /**
5466
- * Month key (YYYY-MM)
5467
- */
5468
- month: string;
5469
- /**
5470
- * Income in base currency (absolute, converted)
5471
- */
5472
- income: string;
5473
- /**
5474
- * Expense in base currency (absolute, converted)
5475
- */
5476
- expense: string;
5477
- /**
5478
- * netSavings = income − expense (savings positive)
5479
- */
5480
- netSavings: string;
5481
- };
5482
-
5483
- export type CashFlowTrendSummaryDto = {
5484
- /**
5485
- * Total income across the period
5486
- */
5487
- totalIncome: string;
5488
- /**
5489
- * Total expense across the period
5490
- */
5491
- totalExpense: string;
5492
- /**
5493
- * income − expense across the period
5494
- */
5495
- totalNetSavings: string;
5496
- /**
5497
- * totalNetSavings divided by the window length (N months, incl. zero-filled)
5498
- */
5499
- averageMonthlyNetSavings: string;
5500
- };
5501
-
5502
- export type CashFlowTrendsResponseDto = {
5503
- /**
5504
- * Monthly cash-flow series (fixed N-month window, zero-filled)
5505
- */
5506
- series: Array<CashFlowPointDto>;
5507
- /**
5508
- * Period totals
5509
- */
5510
- summary: CashFlowTrendSummaryDto;
5511
- /**
5512
- * Period requested
5513
- */
5514
- period: string;
5515
- /**
5516
- * Data granularity (v1 returns month buckets)
5517
- */
5518
- granularity: string;
5519
- /**
5520
- * Base currency for converted values
5521
- */
5522
- currency: string;
5515
+ | 'MISSING_COST_FX_RATE'
5516
+ | 'MISSING_MARKET_FX_RATE'
5517
+ | 'MISSING_SALE_PRICE'
5518
+ | 'MISSING_REALIZED_FX_RATE'
5519
+ | 'OVERSOLD_LOTS'
5520
+ | 'NO_PRICE'
5521
+ | 'MIXED_COST_CURRENCY';
5522
+
5523
+ export type HoldingPnlResponseDto = {
5524
+ asOfDate: string;
5525
+ baseCurrency: string;
5523
5526
  /**
5524
- * Exchange rate warnings (e.g. missing rate for a currency)
5527
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
5525
5528
  */
5526
- warnings?: Array<ExchangeRateWarningDto>;
5529
+ method: 'average' | 'FIFO';
5530
+ rows: Array<HoldingPnlRowDto>;
5531
+ warnings: Array<HoldingPnlWarningDto>;
5527
5532
  };
5528
5533
 
5529
- export type GenerateSnapshotBody = unknown;
5530
-
5531
- export type GenerateSnapshotResponse = unknown;
5532
-
5533
- export type BackfillSnapshotsBody = unknown;
5534
-
5535
- export type BackfillSnapshotsResponse = unknown;
5534
+ /**
5535
+ * Realized-P&L lot-matching method (FIFO or average). Unrealized cost basis remains average regardless of this value (#473).
5536
+ */
5537
+ export type method = 'average' | 'FIFO';
5536
5538
 
5537
5539
  export type AnonymousLoginDto = {
5538
5540
  /**
@@ -6594,237 +6596,298 @@ export type ForecastControllerGetForecastData = {
6594
6596
 
6595
6597
  export type ForecastControllerGetForecastResponse = ForecastResponseDto;
6596
6598
 
6597
- export type TransactionRuleControllerCreateData = {
6599
+ export type ReportingControllerGetPortfolioTrendsData = {
6600
+ /**
6601
+ * Data granularity
6602
+ */
6603
+ granularity?: 'day' | 'week' | 'month';
6604
+ /**
6605
+ * Time period
6606
+ */
6607
+ period?: '1m' | '3m' | '6m' | '1y';
6598
6608
  /**
6599
6609
  * Region code for tenant context
6600
6610
  */
6601
6611
  region: 'cn' | 'us' | 'de' | 'gb';
6602
- requestBody: CreateTransactionRuleDto;
6603
6612
  };
6604
6613
 
6605
- export type TransactionRuleControllerCreateResponse =
6606
- TransactionRuleResponseDto;
6614
+ export type ReportingControllerGetPortfolioTrendsResponse =
6615
+ PortfolioTrendsResponseDto;
6607
6616
 
6608
- export type TransactionRuleControllerListData = {
6609
- /**
6610
- * Filter by auto-apply status
6611
- */
6612
- autoApplyEnabled?: boolean;
6613
- /**
6614
- * Filter by enabled status
6615
- */
6616
- enabled?: boolean;
6617
- /**
6618
- * Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
6619
- */
6620
- learningSource?: 'NLP' | 'REVIEW_CENTER';
6617
+ export type ReportingControllerGetCashFlowTrendsData = {
6621
6618
  /**
6622
- * Max results per page (default: 20, max: 100)
6619
+ * Data granularity (accepted for API symmetry; v1 returns month buckets)
6623
6620
  */
6624
- limit?: number;
6621
+ granularity?: 'day' | 'week' | 'month';
6625
6622
  /**
6626
- * Pagination offset (default: 0)
6623
+ * Time period
6627
6624
  */
6628
- offset?: number;
6625
+ period?: '1m' | '3m' | '6m' | '1y';
6629
6626
  /**
6630
6627
  * Region code for tenant context
6631
6628
  */
6632
6629
  region: 'cn' | 'us' | 'de' | 'gb';
6633
6630
  };
6634
6631
 
6635
- export type TransactionRuleControllerListResponse =
6636
- TransactionRuleListResponseDto;
6632
+ export type ReportingControllerGetCashFlowTrendsResponse =
6633
+ CashFlowTrendsResponseDto;
6637
6634
 
6638
- export type TransactionRuleControllerValidateData = {
6635
+ export type ReportingControllerGenerateSnapshotData = {
6639
6636
  /**
6640
6637
  * Region code for tenant context
6641
6638
  */
6642
6639
  region: 'cn' | 'us' | 'de' | 'gb';
6643
- requestBody: ValidateRuleDto;
6640
+ /**
6641
+ * Optional date (defaults to today)
6642
+ */
6643
+ requestBody: GenerateSnapshotBody;
6644
6644
  };
6645
6645
 
6646
- export type TransactionRuleControllerValidateResponse = ValidateRuleResponseDto;
6646
+ export type ReportingControllerGenerateSnapshotResponse =
6647
+ GenerateSnapshotResponse;
6647
6648
 
6648
- export type TransactionRuleControllerBulkCreateData = {
6649
+ export type ReportingControllerBackfillSnapshotsData = {
6649
6650
  /**
6650
6651
  * Region code for tenant context
6651
6652
  */
6652
6653
  region: 'cn' | 'us' | 'de' | 'gb';
6653
- requestBody: BulkCreateRulesDto;
6654
+ requestBody: BackfillSnapshotsBody;
6654
6655
  };
6655
6656
 
6656
- export type TransactionRuleControllerBulkCreateResponse =
6657
- BulkCreateRulesResponseDto;
6657
+ export type ReportingControllerBackfillSnapshotsResponse =
6658
+ BackfillSnapshotsResponse;
6658
6659
 
6659
- export type TransactionRuleControllerExportData = {
6660
+ export type UserControllerDeleteOwnUserData = {
6661
+ requestBody: DeleteOwnUserDto;
6662
+ };
6663
+
6664
+ export type UserControllerDeleteOwnUserResponse = void;
6665
+
6666
+ export type UserControllerGetUserData = {
6667
+ acceptLanguage: string;
6668
+ };
6669
+
6670
+ export type UserControllerGetUserResponse = unknown;
6671
+
6672
+ export type UserControllerSignupUserData = {
6673
+ requestBody: SignupDto;
6674
+ };
6675
+
6676
+ export type UserControllerSignupUserResponse = SignupResponseDto;
6677
+
6678
+ export type UserControllerDeleteUserData = {
6660
6679
  /**
6661
- * Export format (currently only JSON supported)
6680
+ * User ID to delete
6662
6681
  */
6663
- format: 'json';
6682
+ id: string;
6683
+ };
6684
+
6685
+ export type UserControllerDeleteUserResponse = void;
6686
+
6687
+ export type UserControllerGetUserInfoData = {
6664
6688
  /**
6665
- * Region code for tenant context
6689
+ * User ID
6666
6690
  */
6667
- region: 'cn' | 'us' | 'de' | 'gb';
6691
+ id: string;
6668
6692
  };
6669
6693
 
6670
- export type TransactionRuleControllerExportResponse = ExportRulesResponseDto;
6694
+ export type UserControllerGetUserInfoResponse = unknown;
6671
6695
 
6672
- export type TransactionRuleControllerGetStatisticsData = {
6696
+ export type UserControllerUpdateUserSettingData = {
6697
+ requestBody: UpdateUserSettingDto;
6698
+ };
6699
+
6700
+ export type UserControllerUpdateUserSettingResponse = unknown;
6701
+
6702
+ export type UserControllerGetAllUserSettingsByPageData = {
6673
6703
  /**
6674
- * Statistics time period
6704
+ * Page number
6675
6705
  */
6676
- period: '7d' | '30d' | '90d';
6706
+ pageNo: number;
6677
6707
  /**
6678
- * Region code for tenant context
6708
+ * Page size
6679
6709
  */
6680
- region: 'cn' | 'us' | 'de' | 'gb';
6710
+ pageSize: number;
6681
6711
  };
6682
6712
 
6683
- export type TransactionRuleControllerGetStatisticsResponse =
6684
- RuleStatisticsResponseDto;
6713
+ export type UserControllerGetAllUserSettingsByPageResponse = unknown;
6685
6714
 
6686
- export type TransactionRuleControllerGetDetailData = {
6687
- /**
6688
- * Region code for tenant context
6689
- */
6690
- region: 'cn' | 'us' | 'de' | 'gb';
6715
+ export type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6716
+
6717
+ export type PropertyControllerGetAllResponse = unknown;
6718
+
6719
+ export type PropertyControllerGetByKeyData = {
6691
6720
  /**
6692
- * Rule ID
6721
+ * Property key
6693
6722
  */
6694
- ruleId: string;
6723
+ key: string;
6695
6724
  };
6696
6725
 
6697
- export type TransactionRuleControllerGetDetailResponse =
6698
- TransactionRuleResponseDto;
6726
+ export type PropertyControllerGetByKeyResponse = unknown;
6699
6727
 
6700
- export type TransactionRuleControllerUpdateData = {
6728
+ export type PropertyControllerUpdateData = {
6701
6729
  /**
6702
- * Region code for tenant context
6730
+ * Property key
6703
6731
  */
6704
- region: 'cn' | 'us' | 'de' | 'gb';
6705
- requestBody: UpdateTransactionRuleDto;
6732
+ key: string;
6733
+ requestBody: UpdatePropertyDto;
6734
+ };
6735
+
6736
+ export type PropertyControllerUpdateResponse = unknown;
6737
+
6738
+ export type PropertyControllerDeleteData = {
6706
6739
  /**
6707
- * Rule ID to update
6740
+ * Property key
6708
6741
  */
6709
- ruleId: string;
6742
+ key: string;
6710
6743
  };
6711
6744
 
6712
- export type TransactionRuleControllerUpdateResponse =
6713
- TransactionRuleResponseDto;
6745
+ export type PropertyControllerDeleteResponse = void;
6714
6746
 
6715
- export type TransactionRuleControllerDeleteData = {
6747
+ export type TransactionRuleControllerCreateData = {
6716
6748
  /**
6717
6749
  * Region code for tenant context
6718
6750
  */
6719
6751
  region: 'cn' | 'us' | 'de' | 'gb';
6720
- /**
6721
- * Rule ID to delete
6722
- */
6723
- ruleId: string;
6752
+ requestBody: CreateTransactionRuleDto;
6724
6753
  };
6725
6754
 
6726
- export type TransactionRuleControllerDeleteResponse = void;
6755
+ export type TransactionRuleControllerCreateResponse =
6756
+ TransactionRuleResponseDto;
6727
6757
 
6728
- export type TransactionRuleControllerTestData = {
6758
+ export type TransactionRuleControllerListData = {
6729
6759
  /**
6730
- * Region code for tenant context
6760
+ * Filter by auto-apply status
6731
6761
  */
6732
- region: 'cn' | 'us' | 'de' | 'gb';
6733
- requestBody: TestRuleDto;
6762
+ autoApplyEnabled?: boolean;
6734
6763
  /**
6735
- * Rule ID to test
6764
+ * Filter by enabled status
6736
6765
  */
6737
- ruleId: string;
6738
- };
6739
-
6740
- export type TransactionRuleControllerTestResponse = TestRuleResponseDto;
6741
-
6742
- export type UserControllerDeleteOwnUserData = {
6743
- requestBody: DeleteOwnUserDto;
6744
- };
6745
-
6746
- export type UserControllerDeleteOwnUserResponse = void;
6747
-
6748
- export type UserControllerGetUserData = {
6749
- acceptLanguage: string;
6766
+ enabled?: boolean;
6767
+ /**
6768
+ * Filter by learning source. Omit this parameter or pass empty string to get manually created rules (learningSource is null in database).
6769
+ */
6770
+ learningSource?: 'NLP' | 'REVIEW_CENTER';
6771
+ /**
6772
+ * Max results per page (default: 20, max: 100)
6773
+ */
6774
+ limit?: number;
6775
+ /**
6776
+ * Pagination offset (default: 0)
6777
+ */
6778
+ offset?: number;
6779
+ /**
6780
+ * Region code for tenant context
6781
+ */
6782
+ region: 'cn' | 'us' | 'de' | 'gb';
6750
6783
  };
6751
6784
 
6752
- export type UserControllerGetUserResponse = unknown;
6785
+ export type TransactionRuleControllerListResponse =
6786
+ TransactionRuleListResponseDto;
6753
6787
 
6754
- export type UserControllerSignupUserData = {
6755
- requestBody: SignupDto;
6788
+ export type TransactionRuleControllerValidateData = {
6789
+ /**
6790
+ * Region code for tenant context
6791
+ */
6792
+ region: 'cn' | 'us' | 'de' | 'gb';
6793
+ requestBody: ValidateRuleDto;
6756
6794
  };
6757
6795
 
6758
- export type UserControllerSignupUserResponse = SignupResponseDto;
6796
+ export type TransactionRuleControllerValidateResponse = ValidateRuleResponseDto;
6759
6797
 
6760
- export type UserControllerDeleteUserData = {
6798
+ export type TransactionRuleControllerBulkCreateData = {
6761
6799
  /**
6762
- * User ID to delete
6800
+ * Region code for tenant context
6763
6801
  */
6764
- id: string;
6802
+ region: 'cn' | 'us' | 'de' | 'gb';
6803
+ requestBody: BulkCreateRulesDto;
6765
6804
  };
6766
6805
 
6767
- export type UserControllerDeleteUserResponse = void;
6806
+ export type TransactionRuleControllerBulkCreateResponse =
6807
+ BulkCreateRulesResponseDto;
6768
6808
 
6769
- export type UserControllerGetUserInfoData = {
6809
+ export type TransactionRuleControllerExportData = {
6810
+ /**
6811
+ * Export format (currently only JSON supported)
6812
+ */
6813
+ format: 'json';
6770
6814
  /**
6771
- * User ID
6815
+ * Region code for tenant context
6772
6816
  */
6773
- id: string;
6817
+ region: 'cn' | 'us' | 'de' | 'gb';
6774
6818
  };
6775
6819
 
6776
- export type UserControllerGetUserInfoResponse = unknown;
6820
+ export type TransactionRuleControllerExportResponse = ExportRulesResponseDto;
6777
6821
 
6778
- export type UserControllerUpdateUserSettingData = {
6779
- requestBody: UpdateUserSettingDto;
6822
+ export type TransactionRuleControllerGetStatisticsData = {
6823
+ /**
6824
+ * Statistics time period
6825
+ */
6826
+ period: '7d' | '30d' | '90d';
6827
+ /**
6828
+ * Region code for tenant context
6829
+ */
6830
+ region: 'cn' | 'us' | 'de' | 'gb';
6780
6831
  };
6781
6832
 
6782
- export type UserControllerUpdateUserSettingResponse = unknown;
6833
+ export type TransactionRuleControllerGetStatisticsResponse =
6834
+ RuleStatisticsResponseDto;
6783
6835
 
6784
- export type UserControllerGetAllUserSettingsByPageData = {
6836
+ export type TransactionRuleControllerGetDetailData = {
6785
6837
  /**
6786
- * Page number
6838
+ * Region code for tenant context
6787
6839
  */
6788
- pageNo: number;
6840
+ region: 'cn' | 'us' | 'de' | 'gb';
6789
6841
  /**
6790
- * Page size
6842
+ * Rule ID
6791
6843
  */
6792
- pageSize: number;
6844
+ ruleId: string;
6793
6845
  };
6794
6846
 
6795
- export type UserControllerGetAllUserSettingsByPageResponse = unknown;
6796
-
6797
- export type UserControllerGetAssetLiabilitySummaryResponse = unknown;
6798
-
6799
- export type PropertyControllerGetAllResponse = unknown;
6847
+ export type TransactionRuleControllerGetDetailResponse =
6848
+ TransactionRuleResponseDto;
6800
6849
 
6801
- export type PropertyControllerGetByKeyData = {
6850
+ export type TransactionRuleControllerUpdateData = {
6802
6851
  /**
6803
- * Property key
6852
+ * Region code for tenant context
6804
6853
  */
6805
- key: string;
6854
+ region: 'cn' | 'us' | 'de' | 'gb';
6855
+ requestBody: UpdateTransactionRuleDto;
6856
+ /**
6857
+ * Rule ID to update
6858
+ */
6859
+ ruleId: string;
6806
6860
  };
6807
6861
 
6808
- export type PropertyControllerGetByKeyResponse = unknown;
6862
+ export type TransactionRuleControllerUpdateResponse =
6863
+ TransactionRuleResponseDto;
6809
6864
 
6810
- export type PropertyControllerUpdateData = {
6865
+ export type TransactionRuleControllerDeleteData = {
6811
6866
  /**
6812
- * Property key
6867
+ * Region code for tenant context
6813
6868
  */
6814
- key: string;
6815
- requestBody: UpdatePropertyDto;
6869
+ region: 'cn' | 'us' | 'de' | 'gb';
6870
+ /**
6871
+ * Rule ID to delete
6872
+ */
6873
+ ruleId: string;
6816
6874
  };
6817
6875
 
6818
- export type PropertyControllerUpdateResponse = unknown;
6876
+ export type TransactionRuleControllerDeleteResponse = void;
6819
6877
 
6820
- export type PropertyControllerDeleteData = {
6878
+ export type TransactionRuleControllerTestData = {
6821
6879
  /**
6822
- * Property key
6880
+ * Region code for tenant context
6823
6881
  */
6824
- key: string;
6882
+ region: 'cn' | 'us' | 'de' | 'gb';
6883
+ requestBody: TestRuleDto;
6884
+ /**
6885
+ * Rule ID to test
6886
+ */
6887
+ ruleId: string;
6825
6888
  };
6826
6889
 
6827
- export type PropertyControllerDeleteResponse = void;
6890
+ export type TransactionRuleControllerTestResponse = TestRuleResponseDto;
6828
6891
 
6829
6892
  export type EventControllerCreateData = {
6830
6893
  /**
@@ -7371,67 +7434,6 @@ export type HoldingPnlControllerGetHoldingPnlData = {
7371
7434
 
7372
7435
  export type HoldingPnlControllerGetHoldingPnlResponse = HoldingPnlResponseDto;
7373
7436
 
7374
- export type ReportingControllerGetPortfolioTrendsData = {
7375
- /**
7376
- * Data granularity
7377
- */
7378
- granularity?: 'day' | 'week' | 'month';
7379
- /**
7380
- * Time period
7381
- */
7382
- period?: '1m' | '3m' | '6m' | '1y';
7383
- /**
7384
- * Region code for tenant context
7385
- */
7386
- region: 'cn' | 'us' | 'de' | 'gb';
7387
- };
7388
-
7389
- export type ReportingControllerGetPortfolioTrendsResponse =
7390
- PortfolioTrendsResponseDto;
7391
-
7392
- export type ReportingControllerGetCashFlowTrendsData = {
7393
- /**
7394
- * Data granularity (accepted for API symmetry; v1 returns month buckets)
7395
- */
7396
- granularity?: 'day' | 'week' | 'month';
7397
- /**
7398
- * Time period
7399
- */
7400
- period?: '1m' | '3m' | '6m' | '1y';
7401
- /**
7402
- * Region code for tenant context
7403
- */
7404
- region: 'cn' | 'us' | 'de' | 'gb';
7405
- };
7406
-
7407
- export type ReportingControllerGetCashFlowTrendsResponse =
7408
- CashFlowTrendsResponseDto;
7409
-
7410
- export type ReportingControllerGenerateSnapshotData = {
7411
- /**
7412
- * Region code for tenant context
7413
- */
7414
- region: 'cn' | 'us' | 'de' | 'gb';
7415
- /**
7416
- * Optional date (defaults to today)
7417
- */
7418
- requestBody: GenerateSnapshotBody;
7419
- };
7420
-
7421
- export type ReportingControllerGenerateSnapshotResponse =
7422
- GenerateSnapshotResponse;
7423
-
7424
- export type ReportingControllerBackfillSnapshotsData = {
7425
- /**
7426
- * Region code for tenant context
7427
- */
7428
- region: 'cn' | 'us' | 'de' | 'gb';
7429
- requestBody: BackfillSnapshotsBody;
7430
- };
7431
-
7432
- export type ReportingControllerBackfillSnapshotsResponse =
7433
- BackfillSnapshotsResponse;
7434
-
7435
7437
  export type ApiKeysControllerCreateApiKeyResponse = unknown;
7436
7438
 
7437
7439
  export type AuthControllerAccessTokenLoginData = {
@@ -8465,479 +8467,551 @@ export type $OpenApiTs = {
8465
8467
  /**
8466
8468
  * Skip undone successfully
8467
8469
  */
8468
- 200: ExpectedTransactionResponseDto;
8470
+ 200: ExpectedTransactionResponseDto;
8471
+ /**
8472
+ * Cannot undo - not in SKIPPED status
8473
+ */
8474
+ 400: unknown;
8475
+ /**
8476
+ * Expected transaction not found
8477
+ */
8478
+ 404: unknown;
8479
+ };
8480
+ };
8481
+ };
8482
+ '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8483
+ post: {
8484
+ req: ExpectedTransactionControllerConfirmMatchData;
8485
+ res: {
8486
+ /**
8487
+ * Match confirmed successfully
8488
+ */
8489
+ 200: unknown;
8490
+ /**
8491
+ * Cannot match - not in PENDING status
8492
+ */
8493
+ 400: unknown;
8494
+ /**
8495
+ * Expected or actual transaction not found
8496
+ */
8497
+ 404: unknown;
8498
+ /**
8499
+ * Actual transaction already matched to another rule
8500
+ */
8501
+ 409: unknown;
8502
+ };
8503
+ };
8504
+ delete: {
8505
+ req: ExpectedTransactionControllerUnmatchData;
8506
+ res: {
8507
+ /**
8508
+ * Match removed successfully
8509
+ */
8510
+ 200: unknown;
8511
+ /**
8512
+ * Cannot unmatch - not in COMPLETED status
8513
+ */
8514
+ 400: unknown;
8515
+ /**
8516
+ * Expected transaction not found
8517
+ */
8518
+ 404: unknown;
8519
+ };
8520
+ };
8521
+ };
8522
+ '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8523
+ post: {
8524
+ req: ExpectedTransactionControllerEnterNowData;
8525
+ res: {
8526
+ /**
8527
+ * Transaction created successfully
8528
+ */
8529
+ 201: unknown;
8530
+ /**
8531
+ * Cannot enter - not in PENDING status or missing accounts
8532
+ */
8533
+ 400: unknown;
8534
+ /**
8535
+ * Expected transaction or accounts not found
8536
+ */
8537
+ 404: unknown;
8538
+ };
8539
+ };
8540
+ };
8541
+ '/api/v1/{region}/bean/recurring/forecast': {
8542
+ get: {
8543
+ req: ForecastControllerGetForecastData;
8544
+ res: {
8545
+ /**
8546
+ * Forecast retrieved successfully
8547
+ */
8548
+ 200: ForecastResponseDto;
8549
+ };
8550
+ };
8551
+ };
8552
+ '/api/v1/{region}/reporting/portfolio/trends': {
8553
+ get: {
8554
+ req: ReportingControllerGetPortfolioTrendsData;
8555
+ res: {
8556
+ /**
8557
+ * Trends retrieved successfully
8558
+ */
8559
+ 200: PortfolioTrendsResponseDto;
8560
+ /**
8561
+ * User not authenticated
8562
+ */
8563
+ 401: unknown;
8564
+ };
8565
+ };
8566
+ };
8567
+ '/api/v1/{region}/reporting/cash-flow/trends': {
8568
+ get: {
8569
+ req: ReportingControllerGetCashFlowTrendsData;
8570
+ res: {
8571
+ /**
8572
+ * Cash-flow trends retrieved successfully
8573
+ */
8574
+ 200: CashFlowTrendsResponseDto;
8575
+ /**
8576
+ * User not authenticated
8577
+ */
8578
+ 401: unknown;
8579
+ };
8580
+ };
8581
+ };
8582
+ '/api/v1/{region}/reporting/snapshots/generate': {
8583
+ post: {
8584
+ req: ReportingControllerGenerateSnapshotData;
8585
+ res: {
8586
+ /**
8587
+ * Snapshot generated successfully
8588
+ */
8589
+ 200: GenerateSnapshotResponse;
8469
8590
  /**
8470
- * Cannot undo - not in SKIPPED status
8591
+ * Invalid date format
8471
8592
  */
8472
8593
  400: unknown;
8473
8594
  /**
8474
- * Expected transaction not found
8595
+ * User not authenticated
8475
8596
  */
8476
- 404: unknown;
8597
+ 401: unknown;
8477
8598
  };
8478
8599
  };
8479
8600
  };
8480
- '/api/v1/{region}/bean/expected-transactions/{id}/match': {
8601
+ '/api/v1/{region}/reporting/snapshots/backfill': {
8481
8602
  post: {
8482
- req: ExpectedTransactionControllerConfirmMatchData;
8603
+ req: ReportingControllerBackfillSnapshotsData;
8483
8604
  res: {
8484
8605
  /**
8485
- * Match confirmed successfully
8606
+ * Backfill completed successfully
8486
8607
  */
8487
- 200: unknown;
8608
+ 200: BackfillSnapshotsResponse;
8488
8609
  /**
8489
- * Cannot match - not in PENDING status
8610
+ * Invalid date format or range
8490
8611
  */
8491
8612
  400: unknown;
8492
8613
  /**
8493
- * Expected or actual transaction not found
8614
+ * User not authenticated
8494
8615
  */
8495
- 404: unknown;
8616
+ 401: unknown;
8496
8617
  /**
8497
- * Actual transaction already matched to another rule
8618
+ * Backfill already in progress for this user
8498
8619
  */
8499
8620
  409: unknown;
8500
8621
  };
8501
8622
  };
8623
+ };
8624
+ '/api/v1/users': {
8502
8625
  delete: {
8503
- req: ExpectedTransactionControllerUnmatchData;
8626
+ req: UserControllerDeleteOwnUserData;
8504
8627
  res: {
8505
8628
  /**
8506
- * Match removed successfully
8629
+ * User deleted successfully
8507
8630
  */
8508
- 200: unknown;
8631
+ 204: void;
8509
8632
  /**
8510
- * Cannot unmatch - not in COMPLETED status
8633
+ * Invalid access token
8511
8634
  */
8512
- 400: unknown;
8635
+ 403: unknown;
8636
+ };
8637
+ };
8638
+ get: {
8639
+ req: UserControllerGetUserData;
8640
+ res: {
8513
8641
  /**
8514
- * Expected transaction not found
8642
+ * User retrieved successfully
8515
8643
  */
8516
- 404: unknown;
8644
+ 200: unknown;
8517
8645
  };
8518
8646
  };
8519
- };
8520
- '/api/v1/{region}/bean/expected-transactions/{id}/enter': {
8521
8647
  post: {
8522
- req: ExpectedTransactionControllerEnterNowData;
8648
+ req: UserControllerSignupUserData;
8523
8649
  res: {
8524
8650
  /**
8525
- * Transaction created successfully
8651
+ * User created successfully
8526
8652
  */
8527
- 201: unknown;
8653
+ 201: SignupResponseDto;
8528
8654
  /**
8529
- * Cannot enter - not in PENDING status or missing accounts
8655
+ * Invalid Turnstile token (when Turnstile is enabled)
8530
8656
  */
8531
8657
  400: unknown;
8532
8658
  /**
8533
- * Expected transaction or accounts not found
8534
- */
8535
- 404: unknown;
8536
- };
8537
- };
8538
- };
8539
- '/api/v1/{region}/bean/recurring/forecast': {
8540
- get: {
8541
- req: ForecastControllerGetForecastData;
8542
- res: {
8543
- /**
8544
- * Forecast retrieved successfully
8659
+ * User signup is disabled
8545
8660
  */
8546
- 200: ForecastResponseDto;
8661
+ 403: unknown;
8547
8662
  };
8548
8663
  };
8549
8664
  };
8550
- '/api/v1/{region}/bean/transaction-rules': {
8551
- post: {
8552
- req: TransactionRuleControllerCreateData;
8665
+ '/api/v1/users/{id}': {
8666
+ delete: {
8667
+ req: UserControllerDeleteUserData;
8553
8668
  res: {
8554
8669
  /**
8555
- * Rule updated successfully (upsert mode)
8556
- */
8557
- 200: TransactionRuleResponseDto;
8558
- /**
8559
- * Validation failed
8560
- */
8561
- 400: ApiProblemResponseDto;
8562
- /**
8563
- * Unauthorized
8670
+ * User deleted successfully
8564
8671
  */
8565
- 401: ApiProblemResponseDto;
8672
+ 204: void;
8566
8673
  /**
8567
- * Resource conflict - another process is updating this rule
8674
+ * Cannot delete own account or insufficient permissions
8568
8675
  */
8569
- 409: ApiProblemResponseDto;
8676
+ 403: unknown;
8570
8677
  };
8571
8678
  };
8679
+ };
8680
+ '/api/v1/users/{id}/info': {
8572
8681
  get: {
8573
- req: TransactionRuleControllerListData;
8682
+ req: UserControllerGetUserInfoData;
8574
8683
  res: {
8575
8684
  /**
8576
- * List of rules
8685
+ * User info retrieved successfully
8577
8686
  */
8578
- 200: TransactionRuleListResponseDto;
8687
+ 200: unknown;
8579
8688
  /**
8580
- * Unauthorized
8689
+ * Cannot access other user info without admin permission
8581
8690
  */
8582
- 401: ApiProblemResponseDto;
8691
+ 403: unknown;
8583
8692
  };
8584
8693
  };
8585
8694
  };
8586
- '/api/v1/{region}/bean/transaction-rules/validate': {
8587
- post: {
8588
- req: TransactionRuleControllerValidateData;
8695
+ '/api/v1/users/setting': {
8696
+ put: {
8697
+ req: UserControllerUpdateUserSettingData;
8589
8698
  res: {
8590
8699
  /**
8591
- * Validation result
8592
- */
8593
- 200: ValidateRuleResponseDto;
8594
- /**
8595
- * Validation failed
8700
+ * Settings updated successfully
8596
8701
  */
8597
- 400: ApiProblemResponseDto;
8702
+ 200: unknown;
8598
8703
  /**
8599
- * Unauthorized
8704
+ * Insufficient permissions
8600
8705
  */
8601
- 401: ApiProblemResponseDto;
8706
+ 403: unknown;
8602
8707
  };
8603
8708
  };
8604
8709
  };
8605
- '/api/v1/{region}/bean/transaction-rules/bulk': {
8606
- post: {
8607
- req: TransactionRuleControllerBulkCreateData;
8710
+ '/api/v1/users/settings-by-page': {
8711
+ get: {
8712
+ req: UserControllerGetAllUserSettingsByPageData;
8608
8713
  res: {
8609
8714
  /**
8610
- * Bulk create completed
8611
- */
8612
- 201: BulkCreateRulesResponseDto;
8613
- /**
8614
- * Invalid bulk create data
8615
- */
8616
- 400: ApiProblemResponseDto;
8617
- /**
8618
- * Unauthorized
8715
+ * Settings list retrieved successfully
8619
8716
  */
8620
- 401: ApiProblemResponseDto;
8717
+ 200: unknown;
8621
8718
  };
8622
8719
  };
8623
8720
  };
8624
- '/api/v1/{region}/bean/transaction-rules/export/{format}': {
8721
+ '/api/v1/users/asset-liability-summary': {
8625
8722
  get: {
8626
- req: TransactionRuleControllerExportData;
8627
8723
  res: {
8628
8724
  /**
8629
- * Exported rules
8630
- */
8631
- 200: ExportRulesResponseDto;
8632
- /**
8633
- * Unsupported format
8634
- */
8635
- 400: ApiProblemResponseDto;
8636
- /**
8637
- * Unauthorized
8725
+ * Summary retrieved successfully
8638
8726
  */
8639
- 401: ApiProblemResponseDto;
8727
+ 200: unknown;
8640
8728
  };
8641
8729
  };
8642
8730
  };
8643
- '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
8731
+ '/api/v1/admin/properties': {
8644
8732
  get: {
8645
- req: TransactionRuleControllerGetStatisticsData;
8646
8733
  res: {
8647
8734
  /**
8648
- * Rule statistics
8735
+ * Properties retrieved successfully
8649
8736
  */
8650
- 200: RuleStatisticsResponseDto;
8737
+ 200: unknown;
8651
8738
  /**
8652
8739
  * Unauthorized
8653
8740
  */
8654
- 401: ApiProblemResponseDto;
8741
+ 401: unknown;
8742
+ /**
8743
+ * Forbidden - insufficient permissions
8744
+ */
8745
+ 403: unknown;
8655
8746
  };
8656
8747
  };
8657
8748
  };
8658
- '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
8749
+ '/api/v1/admin/properties/{key}': {
8659
8750
  get: {
8660
- req: TransactionRuleControllerGetDetailData;
8751
+ req: PropertyControllerGetByKeyData;
8661
8752
  res: {
8662
8753
  /**
8663
- * Rule details
8754
+ * Property retrieved successfully
8664
8755
  */
8665
- 200: TransactionRuleResponseDto;
8756
+ 200: unknown;
8666
8757
  /**
8667
8758
  * Unauthorized
8668
8759
  */
8669
- 401: ApiProblemResponseDto;
8760
+ 401: unknown;
8670
8761
  /**
8671
- * Forbidden - not owner of rule
8762
+ * Forbidden - insufficient permissions
8672
8763
  */
8673
- 403: ApiProblemResponseDto;
8764
+ 403: unknown;
8674
8765
  /**
8675
- * Rule not found
8766
+ * Property not found
8676
8767
  */
8677
- 404: ApiProblemResponseDto;
8768
+ 404: unknown;
8678
8769
  };
8679
8770
  };
8680
8771
  put: {
8681
- req: TransactionRuleControllerUpdateData;
8772
+ req: PropertyControllerUpdateData;
8682
8773
  res: {
8683
8774
  /**
8684
- * Rule updated successfully
8685
- */
8686
- 200: TransactionRuleResponseDto;
8687
- /**
8688
- * Validation failed
8775
+ * Property updated successfully
8689
8776
  */
8690
- 400: ApiProblemResponseDto;
8777
+ 200: unknown;
8691
8778
  /**
8692
8779
  * Unauthorized
8693
8780
  */
8694
- 401: ApiProblemResponseDto;
8695
- /**
8696
- * Forbidden - not owner of rule
8697
- */
8698
- 403: ApiProblemResponseDto;
8699
- /**
8700
- * Rule not found
8701
- */
8702
- 404: ApiProblemResponseDto;
8781
+ 401: unknown;
8703
8782
  /**
8704
- * Resource conflict - rule is being modified by another process
8783
+ * Forbidden - insufficient permissions
8705
8784
  */
8706
- 409: ApiProblemResponseDto;
8785
+ 403: unknown;
8707
8786
  };
8708
8787
  };
8709
8788
  delete: {
8710
- req: TransactionRuleControllerDeleteData;
8789
+ req: PropertyControllerDeleteData;
8711
8790
  res: {
8712
8791
  /**
8713
- * Rule deleted successfully
8792
+ * Property deleted successfully
8714
8793
  */
8715
8794
  204: void;
8716
8795
  /**
8717
8796
  * Unauthorized
8718
8797
  */
8719
- 401: ApiProblemResponseDto;
8720
- /**
8721
- * Forbidden - not owner of rule
8722
- */
8723
- 403: ApiProblemResponseDto;
8798
+ 401: unknown;
8724
8799
  /**
8725
- * Rule not found
8800
+ * Forbidden - insufficient permissions
8726
8801
  */
8727
- 404: ApiProblemResponseDto;
8802
+ 403: unknown;
8728
8803
  /**
8729
- * Resource conflict - rule is being modified by another process
8804
+ * Property not found
8730
8805
  */
8731
- 409: ApiProblemResponseDto;
8806
+ 404: unknown;
8732
8807
  };
8733
8808
  };
8734
8809
  };
8735
- '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8810
+ '/api/v1/{region}/bean/transaction-rules': {
8736
8811
  post: {
8737
- req: TransactionRuleControllerTestData;
8812
+ req: TransactionRuleControllerCreateData;
8738
8813
  res: {
8739
8814
  /**
8740
- * Test result
8741
- */
8742
- 200: TestRuleResponseDto;
8743
- /**
8744
- * Unauthorized
8745
- */
8746
- 401: ApiProblemResponseDto;
8747
- /**
8748
- * Forbidden - not owner of rule
8815
+ * Rule updated successfully (upsert mode)
8749
8816
  */
8750
- 403: ApiProblemResponseDto;
8817
+ 200: TransactionRuleResponseDto;
8751
8818
  /**
8752
- * Rule not found
8819
+ * Validation failed
8753
8820
  */
8754
- 404: ApiProblemResponseDto;
8755
- };
8756
- };
8757
- };
8758
- '/api/v1/users': {
8759
- delete: {
8760
- req: UserControllerDeleteOwnUserData;
8761
- res: {
8821
+ 400: ApiProblemResponseDto;
8762
8822
  /**
8763
- * User deleted successfully
8823
+ * Unauthorized
8764
8824
  */
8765
- 204: void;
8825
+ 401: ApiProblemResponseDto;
8766
8826
  /**
8767
- * Invalid access token
8827
+ * Resource conflict - another process is updating this rule
8768
8828
  */
8769
- 403: unknown;
8829
+ 409: ApiProblemResponseDto;
8770
8830
  };
8771
8831
  };
8772
8832
  get: {
8773
- req: UserControllerGetUserData;
8833
+ req: TransactionRuleControllerListData;
8774
8834
  res: {
8775
8835
  /**
8776
- * User retrieved successfully
8836
+ * List of rules
8777
8837
  */
8778
- 200: unknown;
8838
+ 200: TransactionRuleListResponseDto;
8839
+ /**
8840
+ * Unauthorized
8841
+ */
8842
+ 401: ApiProblemResponseDto;
8779
8843
  };
8780
8844
  };
8845
+ };
8846
+ '/api/v1/{region}/bean/transaction-rules/validate': {
8781
8847
  post: {
8782
- req: UserControllerSignupUserData;
8848
+ req: TransactionRuleControllerValidateData;
8783
8849
  res: {
8784
8850
  /**
8785
- * User created successfully
8851
+ * Validation result
8786
8852
  */
8787
- 201: SignupResponseDto;
8853
+ 200: ValidateRuleResponseDto;
8788
8854
  /**
8789
- * Invalid Turnstile token (when Turnstile is enabled)
8855
+ * Validation failed
8790
8856
  */
8791
- 400: unknown;
8857
+ 400: ApiProblemResponseDto;
8792
8858
  /**
8793
- * User signup is disabled
8859
+ * Unauthorized
8794
8860
  */
8795
- 403: unknown;
8861
+ 401: ApiProblemResponseDto;
8796
8862
  };
8797
8863
  };
8798
8864
  };
8799
- '/api/v1/users/{id}': {
8800
- delete: {
8801
- req: UserControllerDeleteUserData;
8865
+ '/api/v1/{region}/bean/transaction-rules/bulk': {
8866
+ post: {
8867
+ req: TransactionRuleControllerBulkCreateData;
8802
8868
  res: {
8803
8869
  /**
8804
- * User deleted successfully
8870
+ * Bulk create completed
8805
8871
  */
8806
- 204: void;
8872
+ 201: BulkCreateRulesResponseDto;
8807
8873
  /**
8808
- * Cannot delete own account or insufficient permissions
8874
+ * Invalid bulk create data
8809
8875
  */
8810
- 403: unknown;
8876
+ 400: ApiProblemResponseDto;
8877
+ /**
8878
+ * Unauthorized
8879
+ */
8880
+ 401: ApiProblemResponseDto;
8811
8881
  };
8812
8882
  };
8813
8883
  };
8814
- '/api/v1/users/{id}/info': {
8884
+ '/api/v1/{region}/bean/transaction-rules/export/{format}': {
8815
8885
  get: {
8816
- req: UserControllerGetUserInfoData;
8886
+ req: TransactionRuleControllerExportData;
8817
8887
  res: {
8818
8888
  /**
8819
- * User info retrieved successfully
8820
- */
8821
- 200: unknown;
8822
- /**
8823
- * Cannot access other user info without admin permission
8889
+ * Exported rules
8824
8890
  */
8825
- 403: unknown;
8826
- };
8827
- };
8828
- };
8829
- '/api/v1/users/setting': {
8830
- put: {
8831
- req: UserControllerUpdateUserSettingData;
8832
- res: {
8891
+ 200: ExportRulesResponseDto;
8833
8892
  /**
8834
- * Settings updated successfully
8893
+ * Unsupported format
8835
8894
  */
8836
- 200: unknown;
8895
+ 400: ApiProblemResponseDto;
8837
8896
  /**
8838
- * Insufficient permissions
8897
+ * Unauthorized
8839
8898
  */
8840
- 403: unknown;
8899
+ 401: ApiProblemResponseDto;
8841
8900
  };
8842
8901
  };
8843
8902
  };
8844
- '/api/v1/users/settings-by-page': {
8903
+ '/api/v1/{region}/bean/transaction-rules/statistics/{period}': {
8845
8904
  get: {
8846
- req: UserControllerGetAllUserSettingsByPageData;
8905
+ req: TransactionRuleControllerGetStatisticsData;
8847
8906
  res: {
8848
8907
  /**
8849
- * Settings list retrieved successfully
8908
+ * Rule statistics
8850
8909
  */
8851
- 200: unknown;
8852
- };
8853
- };
8854
- };
8855
- '/api/v1/users/asset-liability-summary': {
8856
- get: {
8857
- res: {
8910
+ 200: RuleStatisticsResponseDto;
8858
8911
  /**
8859
- * Summary retrieved successfully
8912
+ * Unauthorized
8860
8913
  */
8861
- 200: unknown;
8914
+ 401: ApiProblemResponseDto;
8862
8915
  };
8863
8916
  };
8864
8917
  };
8865
- '/api/v1/admin/properties': {
8918
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}': {
8866
8919
  get: {
8920
+ req: TransactionRuleControllerGetDetailData;
8867
8921
  res: {
8868
8922
  /**
8869
- * Properties retrieved successfully
8923
+ * Rule details
8870
8924
  */
8871
- 200: unknown;
8925
+ 200: TransactionRuleResponseDto;
8872
8926
  /**
8873
8927
  * Unauthorized
8874
8928
  */
8875
- 401: unknown;
8929
+ 401: ApiProblemResponseDto;
8876
8930
  /**
8877
- * Forbidden - insufficient permissions
8931
+ * Forbidden - not owner of rule
8878
8932
  */
8879
- 403: unknown;
8933
+ 403: ApiProblemResponseDto;
8934
+ /**
8935
+ * Rule not found
8936
+ */
8937
+ 404: ApiProblemResponseDto;
8880
8938
  };
8881
8939
  };
8882
- };
8883
- '/api/v1/admin/properties/{key}': {
8884
- get: {
8885
- req: PropertyControllerGetByKeyData;
8940
+ put: {
8941
+ req: TransactionRuleControllerUpdateData;
8886
8942
  res: {
8887
8943
  /**
8888
- * Property retrieved successfully
8944
+ * Rule updated successfully
8889
8945
  */
8890
- 200: unknown;
8946
+ 200: TransactionRuleResponseDto;
8947
+ /**
8948
+ * Validation failed
8949
+ */
8950
+ 400: ApiProblemResponseDto;
8891
8951
  /**
8892
8952
  * Unauthorized
8893
8953
  */
8894
- 401: unknown;
8954
+ 401: ApiProblemResponseDto;
8895
8955
  /**
8896
- * Forbidden - insufficient permissions
8956
+ * Forbidden - not owner of rule
8897
8957
  */
8898
- 403: unknown;
8958
+ 403: ApiProblemResponseDto;
8899
8959
  /**
8900
- * Property not found
8960
+ * Rule not found
8901
8961
  */
8902
- 404: unknown;
8962
+ 404: ApiProblemResponseDto;
8963
+ /**
8964
+ * Resource conflict - rule is being modified by another process
8965
+ */
8966
+ 409: ApiProblemResponseDto;
8903
8967
  };
8904
8968
  };
8905
- put: {
8906
- req: PropertyControllerUpdateData;
8969
+ delete: {
8970
+ req: TransactionRuleControllerDeleteData;
8907
8971
  res: {
8908
8972
  /**
8909
- * Property updated successfully
8973
+ * Rule deleted successfully
8910
8974
  */
8911
- 200: unknown;
8975
+ 204: void;
8912
8976
  /**
8913
8977
  * Unauthorized
8914
8978
  */
8915
- 401: unknown;
8979
+ 401: ApiProblemResponseDto;
8916
8980
  /**
8917
- * Forbidden - insufficient permissions
8981
+ * Forbidden - not owner of rule
8918
8982
  */
8919
- 403: unknown;
8983
+ 403: ApiProblemResponseDto;
8984
+ /**
8985
+ * Rule not found
8986
+ */
8987
+ 404: ApiProblemResponseDto;
8988
+ /**
8989
+ * Resource conflict - rule is being modified by another process
8990
+ */
8991
+ 409: ApiProblemResponseDto;
8920
8992
  };
8921
8993
  };
8922
- delete: {
8923
- req: PropertyControllerDeleteData;
8994
+ };
8995
+ '/api/v1/{region}/bean/transaction-rules/{ruleId}/test': {
8996
+ post: {
8997
+ req: TransactionRuleControllerTestData;
8924
8998
  res: {
8925
8999
  /**
8926
- * Property deleted successfully
9000
+ * Test result
8927
9001
  */
8928
- 204: void;
9002
+ 200: TestRuleResponseDto;
8929
9003
  /**
8930
9004
  * Unauthorized
8931
9005
  */
8932
- 401: unknown;
9006
+ 401: ApiProblemResponseDto;
8933
9007
  /**
8934
- * Forbidden - insufficient permissions
9008
+ * Forbidden - not owner of rule
8935
9009
  */
8936
- 403: unknown;
9010
+ 403: ApiProblemResponseDto;
8937
9011
  /**
8938
- * Property not found
9012
+ * Rule not found
8939
9013
  */
8940
- 404: unknown;
9014
+ 404: ApiProblemResponseDto;
8941
9015
  };
8942
9016
  };
8943
9017
  };
@@ -9617,78 +9691,6 @@ export type $OpenApiTs = {
9617
9691
  };
9618
9692
  };
9619
9693
  };
9620
- '/api/v1/{region}/reporting/portfolio/trends': {
9621
- get: {
9622
- req: ReportingControllerGetPortfolioTrendsData;
9623
- res: {
9624
- /**
9625
- * Trends retrieved successfully
9626
- */
9627
- 200: PortfolioTrendsResponseDto;
9628
- /**
9629
- * User not authenticated
9630
- */
9631
- 401: unknown;
9632
- };
9633
- };
9634
- };
9635
- '/api/v1/{region}/reporting/cash-flow/trends': {
9636
- get: {
9637
- req: ReportingControllerGetCashFlowTrendsData;
9638
- res: {
9639
- /**
9640
- * Cash-flow trends retrieved successfully
9641
- */
9642
- 200: CashFlowTrendsResponseDto;
9643
- /**
9644
- * User not authenticated
9645
- */
9646
- 401: unknown;
9647
- };
9648
- };
9649
- };
9650
- '/api/v1/{region}/reporting/snapshots/generate': {
9651
- post: {
9652
- req: ReportingControllerGenerateSnapshotData;
9653
- res: {
9654
- /**
9655
- * Snapshot generated successfully
9656
- */
9657
- 200: GenerateSnapshotResponse;
9658
- /**
9659
- * Invalid date format
9660
- */
9661
- 400: unknown;
9662
- /**
9663
- * User not authenticated
9664
- */
9665
- 401: unknown;
9666
- };
9667
- };
9668
- };
9669
- '/api/v1/{region}/reporting/snapshots/backfill': {
9670
- post: {
9671
- req: ReportingControllerBackfillSnapshotsData;
9672
- res: {
9673
- /**
9674
- * Backfill completed successfully
9675
- */
9676
- 200: BackfillSnapshotsResponse;
9677
- /**
9678
- * Invalid date format or range
9679
- */
9680
- 400: unknown;
9681
- /**
9682
- * User not authenticated
9683
- */
9684
- 401: unknown;
9685
- /**
9686
- * Backfill already in progress for this user
9687
- */
9688
- 409: unknown;
9689
- };
9690
- };
9691
- };
9692
9694
  '/api/v1/auth/api-keys': {
9693
9695
  post: {
9694
9696
  res: {