@firela/api-types 0.0.0-canary.610daafc → 0.0.0-canary.6a42fd0e

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.
@@ -97,6 +97,18 @@ import type {
97
97
  CommodityControllerGetOrCreateResponse,
98
98
  CommodityControllerBulkCreateData,
99
99
  CommodityControllerBulkCreateResponse,
100
+ PriceControllerCreateData,
101
+ PriceControllerCreateResponse,
102
+ PriceControllerFindAllData,
103
+ PriceControllerFindAllResponse,
104
+ PriceControllerFindOneData,
105
+ PriceControllerFindOneResponse,
106
+ PriceControllerUpdateData,
107
+ PriceControllerUpdateResponse,
108
+ PriceControllerDeleteData,
109
+ PriceControllerDeleteResponse,
110
+ PriceControllerBulkCreateData,
111
+ PriceControllerBulkCreateResponse,
100
112
  RecurringRuleControllerCreateData,
101
113
  RecurringRuleControllerCreateResponse,
102
114
  RecurringRuleControllerFindAllData,
@@ -183,6 +195,14 @@ import type {
183
195
  EventControllerDeleteResponse,
184
196
  EventControllerGetSliceData,
185
197
  EventControllerGetSliceResponse,
198
+ ReconciliationControllerComputeData,
199
+ ReconciliationControllerComputeResponse,
200
+ ReconciliationControllerAssertData,
201
+ ReconciliationControllerAssertResponse,
202
+ ReconciliationControllerPadData,
203
+ ReconciliationControllerPadResponse,
204
+ ReconciliationControllerHistoryData,
205
+ ReconciliationControllerHistoryResponse,
186
206
  ExportControllerExportBeancountResponse,
187
207
  FileImportControllerImportFileData,
188
208
  FileImportControllerImportFileResponse,
@@ -234,18 +254,6 @@ import type {
234
254
  DashboardControllerGetExpensesResponse,
235
255
  HoldingPnlControllerGetHoldingPnlData,
236
256
  HoldingPnlControllerGetHoldingPnlResponse,
237
- PriceControllerCreateData,
238
- PriceControllerCreateResponse,
239
- PriceControllerFindAllData,
240
- PriceControllerFindAllResponse,
241
- PriceControllerFindOneData,
242
- PriceControllerFindOneResponse,
243
- PriceControllerUpdateData,
244
- PriceControllerUpdateResponse,
245
- PriceControllerDeleteData,
246
- PriceControllerDeleteResponse,
247
- PriceControllerBulkCreateData,
248
- PriceControllerBulkCreateResponse,
249
257
  ReportingControllerGetPortfolioTrendsData,
250
258
  ReportingControllerGetPortfolioTrendsResponse,
251
259
  ReportingControllerGetCashFlowTrendsData,
@@ -1515,6 +1523,173 @@ export class BeanCommoditiesService {
1515
1523
  }
1516
1524
  }
1517
1525
 
1526
+ export class BeanPricesService {
1527
+ /**
1528
+ * Create a new price
1529
+ * Creates a new price entry for the authenticated user
1530
+ * @param data The data for the request.
1531
+ * @param data.region Region code for tenant context
1532
+ * @param data.requestBody
1533
+ * @returns PriceResponseDto Price created successfully
1534
+ * @throws ApiError
1535
+ */
1536
+ public static priceControllerCreate(
1537
+ data: PriceControllerCreateData
1538
+ ): CancelablePromise<PriceControllerCreateResponse> {
1539
+ return __request(OpenAPI, {
1540
+ method: 'POST',
1541
+ url: '/api/v1/{region}/bean/prices',
1542
+ path: {
1543
+ region: data.region
1544
+ },
1545
+ body: data.requestBody,
1546
+ mediaType: 'application/json',
1547
+ errors: {
1548
+ 404: 'Currency or quoteCurrency commodity not found',
1549
+ 409: 'Price already exists for this currency pair and date'
1550
+ }
1551
+ });
1552
+ }
1553
+
1554
+ /**
1555
+ * List user prices
1556
+ * Returns all price entries for the authenticated user with optional filtering
1557
+ * @param data The data for the request.
1558
+ * @param data.region Region code for tenant context
1559
+ * @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
1560
+ * @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
1561
+ * @param data.dateFrom Filter prices from this date (ISO 8601 format)
1562
+ * @param data.dateTo Filter prices to this date (ISO 8601 format)
1563
+ * @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
1564
+ * @param data.page Page number for pagination (default: 1)
1565
+ * @param data.limit Number of items per page (default: 20, max: 100)
1566
+ * @returns PriceListResponseDto Prices retrieved successfully
1567
+ * @throws ApiError
1568
+ */
1569
+ public static priceControllerFindAll(
1570
+ data: PriceControllerFindAllData
1571
+ ): CancelablePromise<PriceControllerFindAllResponse> {
1572
+ return __request(OpenAPI, {
1573
+ method: 'GET',
1574
+ url: '/api/v1/{region}/bean/prices',
1575
+ path: {
1576
+ region: data.region
1577
+ },
1578
+ query: {
1579
+ currency: data.currency,
1580
+ quoteCurrency: data.quoteCurrency,
1581
+ dateFrom: data.dateFrom,
1582
+ dateTo: data.dateTo,
1583
+ search: data.search,
1584
+ page: data.page,
1585
+ limit: data.limit
1586
+ }
1587
+ });
1588
+ }
1589
+
1590
+ /**
1591
+ * Get price by ID
1592
+ * Returns a single price entry by its ID
1593
+ * @param data The data for the request.
1594
+ * @param data.id Price ID
1595
+ * @param data.region Region code for tenant context
1596
+ * @returns PriceResponseDto Price retrieved successfully
1597
+ * @throws ApiError
1598
+ */
1599
+ public static priceControllerFindOne(
1600
+ data: PriceControllerFindOneData
1601
+ ): CancelablePromise<PriceControllerFindOneResponse> {
1602
+ return __request(OpenAPI, {
1603
+ method: 'GET',
1604
+ url: '/api/v1/{region}/bean/prices/{id}',
1605
+ path: {
1606
+ id: data.id,
1607
+ region: data.region
1608
+ },
1609
+ errors: {
1610
+ 404: 'Price not found'
1611
+ }
1612
+ });
1613
+ }
1614
+
1615
+ /**
1616
+ * Update a price
1617
+ * Updates an existing price entry
1618
+ * @param data The data for the request.
1619
+ * @param data.id Price ID
1620
+ * @param data.region Region code for tenant context
1621
+ * @param data.requestBody
1622
+ * @returns PriceResponseDto Price updated successfully
1623
+ * @throws ApiError
1624
+ */
1625
+ public static priceControllerUpdate(
1626
+ data: PriceControllerUpdateData
1627
+ ): CancelablePromise<PriceControllerUpdateResponse> {
1628
+ return __request(OpenAPI, {
1629
+ method: 'PUT',
1630
+ url: '/api/v1/{region}/bean/prices/{id}',
1631
+ path: {
1632
+ id: data.id,
1633
+ region: data.region
1634
+ },
1635
+ body: data.requestBody,
1636
+ mediaType: 'application/json',
1637
+ errors: {
1638
+ 404: 'Price not found',
1639
+ 409: 'Updated price conflicts with existing price'
1640
+ }
1641
+ });
1642
+ }
1643
+
1644
+ /**
1645
+ * Delete a price
1646
+ * Deletes a price entry (hard delete)
1647
+ * @param data The data for the request.
1648
+ * @param data.id Price ID
1649
+ * @param data.region Region code for tenant context
1650
+ * @returns void Price deleted successfully
1651
+ * @throws ApiError
1652
+ */
1653
+ public static priceControllerDelete(
1654
+ data: PriceControllerDeleteData
1655
+ ): CancelablePromise<PriceControllerDeleteResponse> {
1656
+ return __request(OpenAPI, {
1657
+ method: 'DELETE',
1658
+ url: '/api/v1/{region}/bean/prices/{id}',
1659
+ path: {
1660
+ id: data.id,
1661
+ region: data.region
1662
+ },
1663
+ errors: {
1664
+ 404: 'Price not found'
1665
+ }
1666
+ });
1667
+ }
1668
+
1669
+ /**
1670
+ * Bulk create prices
1671
+ * Creates multiple price entries at once (skips duplicates)
1672
+ * @param data The data for the request.
1673
+ * @param data.region Region code for tenant context
1674
+ * @param data.requestBody
1675
+ * @returns PriceResponseDto Prices created successfully
1676
+ * @throws ApiError
1677
+ */
1678
+ public static priceControllerBulkCreate(
1679
+ data: PriceControllerBulkCreateData
1680
+ ): CancelablePromise<PriceControllerBulkCreateResponse> {
1681
+ return __request(OpenAPI, {
1682
+ method: 'POST',
1683
+ url: '/api/v1/{region}/bean/prices/bulk',
1684
+ path: {
1685
+ region: data.region
1686
+ },
1687
+ body: data.requestBody,
1688
+ mediaType: 'application/json'
1689
+ });
1690
+ }
1691
+ }
1692
+
1518
1693
  export class RecurringRulesService {
1519
1694
  /**
1520
1695
  * Create a new recurring rule
@@ -2653,6 +2828,112 @@ export class LifeEventsService {
2653
2828
  }
2654
2829
  }
2655
2830
 
2831
+ export class BalanceReconciliationService {
2832
+ /**
2833
+ * Preview reconciliation (book vs actual)
2834
+ * Computes book balance, diff, Beancount-inferred tolerance, and suggested action without persisting.
2835
+ * @param data The data for the request.
2836
+ * @param data.region Region code for tenant context (decorative for reconciliation)
2837
+ * @param data.requestBody
2838
+ * @returns ReconciliationComputeResultDto Reconciliation preview
2839
+ * @throws ApiError
2840
+ */
2841
+ public static reconciliationControllerCompute(
2842
+ data: ReconciliationControllerComputeData
2843
+ ): CancelablePromise<ReconciliationControllerComputeResponse> {
2844
+ return __request(OpenAPI, {
2845
+ method: 'POST',
2846
+ url: '/api/v1/{region}/bean/reconciliations',
2847
+ path: {
2848
+ region: data.region
2849
+ },
2850
+ body: data.requestBody,
2851
+ mediaType: 'application/json',
2852
+ errors: {
2853
+ 404: 'Account not found'
2854
+ }
2855
+ });
2856
+ }
2857
+
2858
+ /**
2859
+ * Record a balance assertion
2860
+ * Persists the reconciliation as a BeanBalance assertion (amount = actual, diffAmount = book − actual). Re-reconciling the same day/currency upserts.
2861
+ * @param data The data for the request.
2862
+ * @param data.region Region code for tenant context (decorative for reconciliation)
2863
+ * @param data.requestBody
2864
+ * @returns ReconciliationRecordDto Balance assertion recorded
2865
+ * @throws ApiError
2866
+ */
2867
+ public static reconciliationControllerAssert(
2868
+ data: ReconciliationControllerAssertData
2869
+ ): CancelablePromise<ReconciliationControllerAssertResponse> {
2870
+ return __request(OpenAPI, {
2871
+ method: 'POST',
2872
+ url: '/api/v1/{region}/bean/reconciliations/assert',
2873
+ path: {
2874
+ region: data.region
2875
+ },
2876
+ body: data.requestBody,
2877
+ mediaType: 'application/json',
2878
+ errors: {
2879
+ 404: 'Account not found'
2880
+ }
2881
+ });
2882
+ }
2883
+
2884
+ /**
2885
+ * Generate a pad adjusting entry
2886
+ * When book is outside tolerance, synthesizes a Beancount pad transaction (flag P) booking the diff from source_account and persists it. Source defaults to Equity:Opening-Balances.
2887
+ * @param data The data for the request.
2888
+ * @param data.region Region code for tenant context (decorative for reconciliation)
2889
+ * @param data.requestBody
2890
+ * @returns PadResultDto Pad adjusting entry generated
2891
+ * @throws ApiError
2892
+ */
2893
+ public static reconciliationControllerPad(
2894
+ data: ReconciliationControllerPadData
2895
+ ): CancelablePromise<ReconciliationControllerPadResponse> {
2896
+ return __request(OpenAPI, {
2897
+ method: 'POST',
2898
+ url: '/api/v1/{region}/bean/reconciliations/pad',
2899
+ path: {
2900
+ region: data.region
2901
+ },
2902
+ body: data.requestBody,
2903
+ mediaType: 'application/json',
2904
+ errors: {
2905
+ 400: 'Book already within tolerance — no pad needed',
2906
+ 404: 'Account not found'
2907
+ }
2908
+ });
2909
+ }
2910
+
2911
+ /**
2912
+ * List reconciliation history for an account
2913
+ * Returns recorded balance assertions (most recent first). The latest drives the account-detail "Last <date>" badge.
2914
+ * @param data The data for the request.
2915
+ * @param data.accountId BeanAccount id
2916
+ * @param data.region Region code for tenant context (decorative for reconciliation)
2917
+ * @returns ReconciliationRecordDto Reconciliation history
2918
+ * @throws ApiError
2919
+ */
2920
+ public static reconciliationControllerHistory(
2921
+ data: ReconciliationControllerHistoryData
2922
+ ): CancelablePromise<ReconciliationControllerHistoryResponse> {
2923
+ return __request(OpenAPI, {
2924
+ method: 'GET',
2925
+ url: '/api/v1/{region}/bean/accounts/{accountId}/reconciliations',
2926
+ path: {
2927
+ accountId: data.accountId,
2928
+ region: data.region
2929
+ },
2930
+ errors: {
2931
+ 404: 'Account not found'
2932
+ }
2933
+ });
2934
+ }
2935
+ }
2936
+
2656
2937
  export class BeanExportService {
2657
2938
  /**
2658
2939
  * Export Beancount ledger as ZIP
@@ -3358,173 +3639,6 @@ export class InvestmentService {
3358
3639
  }
3359
3640
  }
3360
3641
 
3361
- export class BeanPricesService {
3362
- /**
3363
- * Create a new price
3364
- * Creates a new price entry for the authenticated user
3365
- * @param data The data for the request.
3366
- * @param data.region Region code for tenant context
3367
- * @param data.requestBody
3368
- * @returns PriceResponseDto Price created successfully
3369
- * @throws ApiError
3370
- */
3371
- public static priceControllerCreate(
3372
- data: PriceControllerCreateData
3373
- ): CancelablePromise<PriceControllerCreateResponse> {
3374
- return __request(OpenAPI, {
3375
- method: 'POST',
3376
- url: '/api/v1/{region}/bean/prices',
3377
- path: {
3378
- region: data.region
3379
- },
3380
- body: data.requestBody,
3381
- mediaType: 'application/json',
3382
- errors: {
3383
- 404: 'Currency or quoteCurrency commodity not found',
3384
- 409: 'Price already exists for this currency pair and date'
3385
- }
3386
- });
3387
- }
3388
-
3389
- /**
3390
- * List user prices
3391
- * Returns all price entries for the authenticated user with optional filtering
3392
- * @param data The data for the request.
3393
- * @param data.region Region code for tenant context
3394
- * @param data.currency Filter by currency (e.g., BTC, AAPL, USD)
3395
- * @param data.quoteCurrency Filter by quote currency (pricing currency, e.g., USD, CNY)
3396
- * @param data.dateFrom Filter prices from this date (ISO 8601 format)
3397
- * @param data.dateTo Filter prices to this date (ISO 8601 format)
3398
- * @param data.search Search term for currency or quoteCurrency (case-insensitive partial match)
3399
- * @param data.page Page number for pagination (default: 1)
3400
- * @param data.limit Number of items per page (default: 20, max: 100)
3401
- * @returns PriceListResponseDto Prices retrieved successfully
3402
- * @throws ApiError
3403
- */
3404
- public static priceControllerFindAll(
3405
- data: PriceControllerFindAllData
3406
- ): CancelablePromise<PriceControllerFindAllResponse> {
3407
- return __request(OpenAPI, {
3408
- method: 'GET',
3409
- url: '/api/v1/{region}/bean/prices',
3410
- path: {
3411
- region: data.region
3412
- },
3413
- query: {
3414
- currency: data.currency,
3415
- quoteCurrency: data.quoteCurrency,
3416
- dateFrom: data.dateFrom,
3417
- dateTo: data.dateTo,
3418
- search: data.search,
3419
- page: data.page,
3420
- limit: data.limit
3421
- }
3422
- });
3423
- }
3424
-
3425
- /**
3426
- * Get price by ID
3427
- * Returns a single price entry by its ID
3428
- * @param data The data for the request.
3429
- * @param data.id Price ID
3430
- * @param data.region Region code for tenant context
3431
- * @returns PriceResponseDto Price retrieved successfully
3432
- * @throws ApiError
3433
- */
3434
- public static priceControllerFindOne(
3435
- data: PriceControllerFindOneData
3436
- ): CancelablePromise<PriceControllerFindOneResponse> {
3437
- return __request(OpenAPI, {
3438
- method: 'GET',
3439
- url: '/api/v1/{region}/bean/prices/{id}',
3440
- path: {
3441
- id: data.id,
3442
- region: data.region
3443
- },
3444
- errors: {
3445
- 404: 'Price not found'
3446
- }
3447
- });
3448
- }
3449
-
3450
- /**
3451
- * Update a price
3452
- * Updates an existing price entry
3453
- * @param data The data for the request.
3454
- * @param data.id Price ID
3455
- * @param data.region Region code for tenant context
3456
- * @param data.requestBody
3457
- * @returns PriceResponseDto Price updated successfully
3458
- * @throws ApiError
3459
- */
3460
- public static priceControllerUpdate(
3461
- data: PriceControllerUpdateData
3462
- ): CancelablePromise<PriceControllerUpdateResponse> {
3463
- return __request(OpenAPI, {
3464
- method: 'PUT',
3465
- url: '/api/v1/{region}/bean/prices/{id}',
3466
- path: {
3467
- id: data.id,
3468
- region: data.region
3469
- },
3470
- body: data.requestBody,
3471
- mediaType: 'application/json',
3472
- errors: {
3473
- 404: 'Price not found',
3474
- 409: 'Updated price conflicts with existing price'
3475
- }
3476
- });
3477
- }
3478
-
3479
- /**
3480
- * Delete a price
3481
- * Deletes a price entry (hard delete)
3482
- * @param data The data for the request.
3483
- * @param data.id Price ID
3484
- * @param data.region Region code for tenant context
3485
- * @returns void Price deleted successfully
3486
- * @throws ApiError
3487
- */
3488
- public static priceControllerDelete(
3489
- data: PriceControllerDeleteData
3490
- ): CancelablePromise<PriceControllerDeleteResponse> {
3491
- return __request(OpenAPI, {
3492
- method: 'DELETE',
3493
- url: '/api/v1/{region}/bean/prices/{id}',
3494
- path: {
3495
- id: data.id,
3496
- region: data.region
3497
- },
3498
- errors: {
3499
- 404: 'Price not found'
3500
- }
3501
- });
3502
- }
3503
-
3504
- /**
3505
- * Bulk create prices
3506
- * Creates multiple price entries at once (skips duplicates)
3507
- * @param data The data for the request.
3508
- * @param data.region Region code for tenant context
3509
- * @param data.requestBody
3510
- * @returns PriceResponseDto Prices created successfully
3511
- * @throws ApiError
3512
- */
3513
- public static priceControllerBulkCreate(
3514
- data: PriceControllerBulkCreateData
3515
- ): CancelablePromise<PriceControllerBulkCreateResponse> {
3516
- return __request(OpenAPI, {
3517
- method: 'POST',
3518
- url: '/api/v1/{region}/bean/prices/bulk',
3519
- path: {
3520
- region: data.region
3521
- },
3522
- body: data.requestBody,
3523
- mediaType: 'application/json'
3524
- });
3525
- }
3526
- }
3527
-
3528
3642
  export class ReportingService {
3529
3643
  /**
3530
3644
  * Get portfolio value trends