@digiteers/uloba3-sdk 1.3.12 → 1.3.13

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/types.d.ts CHANGED
@@ -1180,7 +1180,7 @@ export interface paths {
1180
1180
  patch?: never;
1181
1181
  trace?: never;
1182
1182
  };
1183
- '/api/users/me': {
1183
+ '/api/users/stats': {
1184
1184
  parameters: {
1185
1185
  query?: never;
1186
1186
  header?: never;
@@ -1188,8 +1188,8 @@ export interface paths {
1188
1188
  cookie?: never;
1189
1189
  };
1190
1190
  /**
1191
- * Get current user
1192
- * @description Get the currently authenticated user
1191
+ * Get user statistics
1192
+ * @description Get comprehensive user statistics for support dashboard. Only support staff can access.
1193
1193
  */
1194
1194
  get: {
1195
1195
  parameters: {
@@ -1200,6 +1200,62 @@ export interface paths {
1200
1200
  };
1201
1201
  requestBody?: never;
1202
1202
  responses: {
1203
+ /** @description User statistics response for support team */
1204
+ 200: {
1205
+ headers: {
1206
+ [name: string]: unknown;
1207
+ };
1208
+ content: {
1209
+ 'application/json': {
1210
+ /** @description User statistics for support team */
1211
+ data: {
1212
+ /** @description Total user counts */
1213
+ totals: {
1214
+ /** @description Non-negative integer (0 or greater) */
1215
+ all: number;
1216
+ /** @description Non-negative integer (0 or greater) */
1217
+ activeToday: number;
1218
+ /** @description Non-negative integer (0 or greater) */
1219
+ newLast7Days: number;
1220
+ /** @description Non-negative integer (0 or greater) */
1221
+ needsFollowup: number;
1222
+ };
1223
+ /** @description User counts by role */
1224
+ byRole: {
1225
+ /** @description Non-negative integer (0 or greater) */
1226
+ job_seeker: number;
1227
+ /** @description Non-negative integer (0 or greater) */
1228
+ employer: number;
1229
+ /** @description Non-negative integer (0 or greater) */
1230
+ admin: number;
1231
+ /** @description Non-negative integer (0 or greater) */
1232
+ support: number;
1233
+ };
1234
+ /** @description User counts by account status */
1235
+ byStatus: {
1236
+ /** @description Non-negative integer (0 or greater) */
1237
+ active: number;
1238
+ /** @description Non-negative integer (0 or greater) */
1239
+ suspended: number;
1240
+ /** @description Non-negative integer (0 or greater) */
1241
+ pending_verification: number;
1242
+ };
1243
+ };
1244
+ /** @description Metadata for user statistics response */
1245
+ metadata: {
1246
+ /** @description ID of the support user who requested the stats */
1247
+ supportUserId?: string;
1248
+ /** @description Whether the result was served from cache */
1249
+ cached?: boolean;
1250
+ /**
1251
+ * Format: date-time
1252
+ * @description ISO 8601 datetime format (YYYY-MM-DDTHH:mm:ss.sssZ)
1253
+ */
1254
+ queriedAt: string;
1255
+ };
1256
+ };
1257
+ };
1258
+ };
1203
1259
  /** @description Default Response */
1204
1260
  401: {
1205
1261
  headers: {
@@ -1211,70 +1267,136 @@ export interface paths {
1211
1267
  };
1212
1268
  };
1213
1269
  };
1270
+ /** @description Default Response */
1271
+ 403: {
1272
+ headers: {
1273
+ [name: string]: unknown;
1274
+ };
1275
+ content: {
1276
+ 'application/json': {
1277
+ error: string;
1278
+ };
1279
+ };
1280
+ };
1214
1281
  };
1215
1282
  };
1283
+ put?: never;
1284
+ post?: never;
1285
+ delete?: never;
1286
+ options?: never;
1287
+ head?: never;
1288
+ patch?: never;
1289
+ trace?: never;
1290
+ };
1291
+ '/api/users/{id}/engagement': {
1292
+ parameters: {
1293
+ query?: never;
1294
+ header?: never;
1295
+ path?: never;
1296
+ cookie?: never;
1297
+ };
1216
1298
  /**
1217
- * Update current user
1218
- * @description Update the currently authenticated user
1299
+ * Get user engagement
1300
+ * @description Get user engagement data across all platform features. Only support staff can access.
1219
1301
  */
1220
- put: {
1302
+ get: {
1221
1303
  parameters: {
1222
1304
  query?: never;
1223
1305
  header?: never;
1224
- path?: never;
1225
- cookie?: never;
1226
- };
1227
- /** @description Schema for updating an existing user */
1228
- requestBody?: {
1229
- content: {
1230
- 'application/json': {
1231
- /** @description Person name with letters, spaces, dots, hyphens, and apostrophes */
1232
- given_name?: string;
1233
- /** @description Person name with letters, spaces, dots, hyphens, and apostrophes */
1234
- family_name?: string;
1235
- /** @description Person name with letters, spaces, dots, hyphens, and apostrophes */
1236
- full_name?: string;
1237
- phone?: string | null;
1238
- picture?: string;
1239
- auth0_metadata?: unknown;
1240
- email_verified?: boolean;
1241
- roles?: unknown;
1242
- };
1306
+ path: {
1307
+ id: string;
1243
1308
  };
1309
+ cookie?: never;
1244
1310
  };
1311
+ requestBody?: never;
1245
1312
  responses: {
1246
- /** @description Complete user entity schema representing the users table */
1313
+ /** @description Default Response */
1247
1314
  200: {
1248
1315
  headers: {
1249
1316
  [name: string]: unknown;
1250
1317
  };
1251
1318
  content: {
1252
1319
  'application/json': {
1253
- /** Format: uuid */
1254
- id: string;
1255
- } & {
1256
- auth0_id?: string | null;
1257
- uloba_id?: string | null;
1258
- uloba_immutable_id?: string | null;
1259
- } & {
1260
- /** Format: email */
1261
- email: string;
1262
- email_verified?: boolean | null;
1263
- phone?: string | null;
1264
- } & {
1265
- given_name?: string | null;
1266
- family_name?: string | null;
1267
- full_name?: string | null;
1268
- picture?: string | null;
1269
- } & {
1270
- roles?: unknown;
1271
- } & {
1272
- last_login?: string | null;
1273
- } & {
1274
- auth0_metadata?: unknown;
1275
- } & {
1276
- created_at?: string | null;
1277
- updated_at?: string | null;
1320
+ /** @description User engagement data across all platform features */
1321
+ data: {
1322
+ jobs?: {
1323
+ /** Format: uuid */
1324
+ id: string;
1325
+ title: string;
1326
+ status: string;
1327
+ /** Format: date-time */
1328
+ created_at: string;
1329
+ applications_count?: number;
1330
+ }[];
1331
+ applications?: {
1332
+ /** Format: uuid */
1333
+ id: string;
1334
+ /** Format: uuid */
1335
+ job_id: string;
1336
+ job_title?: string;
1337
+ status: string;
1338
+ /** Format: date-time */
1339
+ applied_at: string;
1340
+ }[];
1341
+ contracts?: {
1342
+ as_worker: {
1343
+ /** Format: uuid */
1344
+ id: string;
1345
+ title?: string;
1346
+ status: string;
1347
+ contract_type?: string;
1348
+ /** Format: date */
1349
+ start_date?: string;
1350
+ /** Format: date */
1351
+ end_date?: string;
1352
+ /** Format: date-time */
1353
+ created_at: string;
1354
+ }[];
1355
+ as_employer: {
1356
+ /** Format: uuid */
1357
+ id: string;
1358
+ title?: string;
1359
+ status: string;
1360
+ contract_type?: string;
1361
+ /** Format: date */
1362
+ start_date?: string;
1363
+ /** Format: date */
1364
+ end_date?: string;
1365
+ /** Format: date-time */
1366
+ created_at: string;
1367
+ }[];
1368
+ };
1369
+ inquiries?: {
1370
+ sent: {
1371
+ /** Format: uuid */
1372
+ id: string;
1373
+ inquiry_type: string;
1374
+ status: string;
1375
+ /** Format: date-time */
1376
+ created_at: string;
1377
+ message?: string;
1378
+ }[];
1379
+ received: {
1380
+ /** Format: uuid */
1381
+ id: string;
1382
+ inquiry_type: string;
1383
+ status: string;
1384
+ /** Format: date-time */
1385
+ created_at: string;
1386
+ message?: string;
1387
+ }[];
1388
+ };
1389
+ assistantProfile?: {
1390
+ /** Format: uuid */
1391
+ id: string;
1392
+ status: string;
1393
+ view_count?: number;
1394
+ /** Format: date-time */
1395
+ created_at: string;
1396
+ /** Format: date-time */
1397
+ updated_at?: string;
1398
+ };
1399
+ };
1278
1400
  };
1279
1401
  };
1280
1402
  };
@@ -1289,8 +1411,31 @@ export interface paths {
1289
1411
  };
1290
1412
  };
1291
1413
  };
1414
+ /** @description Default Response */
1415
+ 403: {
1416
+ headers: {
1417
+ [name: string]: unknown;
1418
+ };
1419
+ content: {
1420
+ 'application/json': {
1421
+ error: string;
1422
+ };
1423
+ };
1424
+ };
1425
+ /** @description Default Response */
1426
+ 404: {
1427
+ headers: {
1428
+ [name: string]: unknown;
1429
+ };
1430
+ content: {
1431
+ 'application/json': {
1432
+ error: string;
1433
+ };
1434
+ };
1435
+ };
1292
1436
  };
1293
1437
  };
1438
+ put?: never;
1294
1439
  post?: never;
1295
1440
  delete?: never;
1296
1441
  options?: never;
@@ -1298,7 +1443,7 @@ export interface paths {
1298
1443
  patch?: never;
1299
1444
  trace?: never;
1300
1445
  };
1301
- '/api/users/{id}': {
1446
+ '/api/users/{id}/activity/timeline': {
1302
1447
  parameters: {
1303
1448
  query?: never;
1304
1449
  header?: never;
@@ -1306,12 +1451,16 @@ export interface paths {
1306
1451
  cookie?: never;
1307
1452
  };
1308
1453
  /**
1309
- * Get user by ID
1310
- * @description Get a user by their ID
1454
+ * Get user activity timeline
1455
+ * @description Get paginated timeline of user activities. Users can view their own timeline, support staff can view any.
1311
1456
  */
1312
1457
  get: {
1313
1458
  parameters: {
1314
- query?: never;
1459
+ query?: {
1460
+ limit?: number;
1461
+ offset?: number;
1462
+ entity_type?: 'job' | 'application' | 'inquiry' | 'assistant' | 'contract' | 'job_listing_subscription' | 'attachment' | 'contract_case' | 'contract_invite' | 'conversation' | 'message' | 'user';
1463
+ };
1315
1464
  header?: never;
1316
1465
  path: {
1317
1466
  id: string;
@@ -1320,38 +1469,23 @@ export interface paths {
1320
1469
  };
1321
1470
  requestBody?: never;
1322
1471
  responses: {
1323
- /** @description Complete user entity schema representing the users table */
1472
+ /** @description Default Response */
1324
1473
  200: {
1325
1474
  headers: {
1326
1475
  [name: string]: unknown;
1327
1476
  };
1328
1477
  content: {
1329
1478
  'application/json': {
1330
- /** Format: uuid */
1331
- id: string;
1332
- } & {
1333
- auth0_id?: string | null;
1334
- uloba_id?: string | null;
1335
- uloba_immutable_id?: string | null;
1336
- } & {
1337
- /** Format: email */
1338
- email: string;
1339
- email_verified?: boolean | null;
1340
- phone?: string | null;
1341
- } & {
1342
- given_name?: string | null;
1343
- family_name?: string | null;
1344
- full_name?: string | null;
1345
- picture?: string | null;
1346
- } & {
1347
- roles?: unknown;
1348
- } & {
1349
- last_login?: string | null;
1350
- } & {
1351
- auth0_metadata?: unknown;
1352
- } & {
1353
- created_at?: string | null;
1354
- updated_at?: string | null;
1479
+ data: unknown[];
1480
+ pagination: {
1481
+ limit: number;
1482
+ offset: number;
1483
+ has_more: boolean;
1484
+ };
1485
+ metadata: {
1486
+ viewerContext: string;
1487
+ timestamp: string;
1488
+ };
1355
1489
  };
1356
1490
  };
1357
1491
  };
@@ -1367,7 +1501,7 @@ export interface paths {
1367
1501
  };
1368
1502
  };
1369
1503
  /** @description Default Response */
1370
- 404: {
1504
+ 403: {
1371
1505
  headers: {
1372
1506
  [name: string]: unknown;
1373
1507
  };
@@ -1387,7 +1521,1306 @@ export interface paths {
1387
1521
  patch?: never;
1388
1522
  trace?: never;
1389
1523
  };
1390
- '/api/users/uloba/{uloba_id}': {
1524
+ '/api/users/{id}/activity/summary': {
1525
+ parameters: {
1526
+ query?: never;
1527
+ header?: never;
1528
+ path?: never;
1529
+ cookie?: never;
1530
+ };
1531
+ /**
1532
+ * Get user activity summary
1533
+ * @description Get aggregated activity summary by entity type. Users can view their own summary, support staff can view any.
1534
+ */
1535
+ get: {
1536
+ parameters: {
1537
+ query?: {
1538
+ days?: number;
1539
+ };
1540
+ header?: never;
1541
+ path: {
1542
+ id: string;
1543
+ };
1544
+ cookie?: never;
1545
+ };
1546
+ requestBody?: never;
1547
+ responses: {
1548
+ /** @description Default Response */
1549
+ 200: {
1550
+ headers: {
1551
+ [name: string]: unknown;
1552
+ };
1553
+ content: {
1554
+ 'application/json': {
1555
+ data: unknown[];
1556
+ metadata: {
1557
+ viewerContext: string;
1558
+ period_days: number;
1559
+ timestamp: string;
1560
+ };
1561
+ };
1562
+ };
1563
+ };
1564
+ /** @description Default Response */
1565
+ 401: {
1566
+ headers: {
1567
+ [name: string]: unknown;
1568
+ };
1569
+ content: {
1570
+ 'application/json': {
1571
+ error: string;
1572
+ };
1573
+ };
1574
+ };
1575
+ /** @description Default Response */
1576
+ 403: {
1577
+ headers: {
1578
+ [name: string]: unknown;
1579
+ };
1580
+ content: {
1581
+ 'application/json': {
1582
+ error: string;
1583
+ };
1584
+ };
1585
+ };
1586
+ };
1587
+ };
1588
+ put?: never;
1589
+ post?: never;
1590
+ delete?: never;
1591
+ options?: never;
1592
+ head?: never;
1593
+ patch?: never;
1594
+ trace?: never;
1595
+ };
1596
+ '/api/users/{id}/activity/engagement': {
1597
+ parameters: {
1598
+ query?: never;
1599
+ header?: never;
1600
+ path?: never;
1601
+ cookie?: never;
1602
+ };
1603
+ /**
1604
+ * Get user engagement score
1605
+ * @description Get comprehensive engagement metrics. Users can view their own score, support staff can view any.
1606
+ */
1607
+ get: {
1608
+ parameters: {
1609
+ query?: {
1610
+ days?: number;
1611
+ };
1612
+ header?: never;
1613
+ path: {
1614
+ id: string;
1615
+ };
1616
+ cookie?: never;
1617
+ };
1618
+ requestBody?: never;
1619
+ responses: {
1620
+ /** @description Default Response */
1621
+ 200: {
1622
+ headers: {
1623
+ [name: string]: unknown;
1624
+ };
1625
+ content: {
1626
+ 'application/json': {
1627
+ data: unknown;
1628
+ metadata: {
1629
+ viewerContext: string;
1630
+ timestamp: string;
1631
+ };
1632
+ };
1633
+ };
1634
+ };
1635
+ /** @description Default Response */
1636
+ 401: {
1637
+ headers: {
1638
+ [name: string]: unknown;
1639
+ };
1640
+ content: {
1641
+ 'application/json': {
1642
+ error: string;
1643
+ };
1644
+ };
1645
+ };
1646
+ /** @description Default Response */
1647
+ 403: {
1648
+ headers: {
1649
+ [name: string]: unknown;
1650
+ };
1651
+ content: {
1652
+ 'application/json': {
1653
+ error: string;
1654
+ };
1655
+ };
1656
+ };
1657
+ };
1658
+ };
1659
+ put?: never;
1660
+ post?: never;
1661
+ delete?: never;
1662
+ options?: never;
1663
+ head?: never;
1664
+ patch?: never;
1665
+ trace?: never;
1666
+ };
1667
+ '/api/users/{id}/sessions/active': {
1668
+ parameters: {
1669
+ query?: never;
1670
+ header?: never;
1671
+ path?: never;
1672
+ cookie?: never;
1673
+ };
1674
+ /**
1675
+ * Get user active sessions
1676
+ * @description Get all active sessions for a user. Users can view their own sessions, support staff can view any.
1677
+ */
1678
+ get: {
1679
+ parameters: {
1680
+ query?: never;
1681
+ header?: never;
1682
+ path: {
1683
+ id: string;
1684
+ };
1685
+ cookie?: never;
1686
+ };
1687
+ requestBody?: never;
1688
+ responses: {
1689
+ /** @description Default Response */
1690
+ 200: {
1691
+ headers: {
1692
+ [name: string]: unknown;
1693
+ };
1694
+ content: {
1695
+ 'application/json': {
1696
+ data: unknown[];
1697
+ metadata: {
1698
+ viewerContext: string;
1699
+ timestamp: string;
1700
+ };
1701
+ };
1702
+ };
1703
+ };
1704
+ /** @description Default Response */
1705
+ 401: {
1706
+ headers: {
1707
+ [name: string]: unknown;
1708
+ };
1709
+ content: {
1710
+ 'application/json': {
1711
+ error: string;
1712
+ };
1713
+ };
1714
+ };
1715
+ /** @description Default Response */
1716
+ 403: {
1717
+ headers: {
1718
+ [name: string]: unknown;
1719
+ };
1720
+ content: {
1721
+ 'application/json': {
1722
+ error: string;
1723
+ };
1724
+ };
1725
+ };
1726
+ };
1727
+ };
1728
+ put?: never;
1729
+ post?: never;
1730
+ delete?: never;
1731
+ options?: never;
1732
+ head?: never;
1733
+ patch?: never;
1734
+ trace?: never;
1735
+ };
1736
+ '/api/users/{id}/sessions/history': {
1737
+ parameters: {
1738
+ query?: never;
1739
+ header?: never;
1740
+ path?: never;
1741
+ cookie?: never;
1742
+ };
1743
+ /**
1744
+ * Get user session history
1745
+ * @description Get paginated session history. Users can view their own history, support staff can view any.
1746
+ */
1747
+ get: {
1748
+ parameters: {
1749
+ query?: {
1750
+ limit?: number;
1751
+ offset?: number;
1752
+ };
1753
+ header?: never;
1754
+ path: {
1755
+ id: string;
1756
+ };
1757
+ cookie?: never;
1758
+ };
1759
+ requestBody?: never;
1760
+ responses: {
1761
+ /** @description Default Response */
1762
+ 200: {
1763
+ headers: {
1764
+ [name: string]: unknown;
1765
+ };
1766
+ content: {
1767
+ 'application/json': {
1768
+ data: unknown[];
1769
+ pagination: {
1770
+ limit: number;
1771
+ offset: number;
1772
+ has_more: boolean;
1773
+ };
1774
+ metadata: {
1775
+ viewerContext: string;
1776
+ timestamp: string;
1777
+ };
1778
+ };
1779
+ };
1780
+ };
1781
+ /** @description Default Response */
1782
+ 401: {
1783
+ headers: {
1784
+ [name: string]: unknown;
1785
+ };
1786
+ content: {
1787
+ 'application/json': {
1788
+ error: string;
1789
+ };
1790
+ };
1791
+ };
1792
+ /** @description Default Response */
1793
+ 403: {
1794
+ headers: {
1795
+ [name: string]: unknown;
1796
+ };
1797
+ content: {
1798
+ 'application/json': {
1799
+ error: string;
1800
+ };
1801
+ };
1802
+ };
1803
+ };
1804
+ };
1805
+ put?: never;
1806
+ post?: never;
1807
+ delete?: never;
1808
+ options?: never;
1809
+ head?: never;
1810
+ patch?: never;
1811
+ trace?: never;
1812
+ };
1813
+ '/api/users/me': {
1814
+ parameters: {
1815
+ query?: never;
1816
+ header?: never;
1817
+ path?: never;
1818
+ cookie?: never;
1819
+ };
1820
+ /**
1821
+ * Get current user
1822
+ * @description Get the currently authenticated user
1823
+ */
1824
+ get: {
1825
+ parameters: {
1826
+ query?: never;
1827
+ header?: never;
1828
+ path?: never;
1829
+ cookie?: never;
1830
+ };
1831
+ requestBody?: never;
1832
+ responses: {
1833
+ /** @description Default Response */
1834
+ 401: {
1835
+ headers: {
1836
+ [name: string]: unknown;
1837
+ };
1838
+ content: {
1839
+ 'application/json': {
1840
+ error: string;
1841
+ };
1842
+ };
1843
+ };
1844
+ };
1845
+ };
1846
+ /**
1847
+ * Update current user
1848
+ * @description Update the currently authenticated user
1849
+ */
1850
+ put: {
1851
+ parameters: {
1852
+ query?: never;
1853
+ header?: never;
1854
+ path?: never;
1855
+ cookie?: never;
1856
+ };
1857
+ /** @description Schema for updating an existing user */
1858
+ requestBody?: {
1859
+ content: {
1860
+ 'application/json': {
1861
+ /** @description Person name with letters, spaces, dots, hyphens, and apostrophes */
1862
+ given_name?: string;
1863
+ /** @description Person name with letters, spaces, dots, hyphens, and apostrophes */
1864
+ family_name?: string;
1865
+ /** @description Person name with letters, spaces, dots, hyphens, and apostrophes */
1866
+ full_name?: string;
1867
+ phone?: string | null;
1868
+ picture?: string;
1869
+ auth0_metadata?: unknown;
1870
+ email_verified?: boolean;
1871
+ roles?: unknown;
1872
+ };
1873
+ };
1874
+ };
1875
+ responses: {
1876
+ /** @description Complete user entity schema representing the users table */
1877
+ 200: {
1878
+ headers: {
1879
+ [name: string]: unknown;
1880
+ };
1881
+ content: {
1882
+ 'application/json': {
1883
+ /** Format: uuid */
1884
+ id: string;
1885
+ } & {
1886
+ auth0_id?: string | null;
1887
+ uloba_id?: string | null;
1888
+ uloba_immutable_id?: string | null;
1889
+ } & {
1890
+ /** Format: email */
1891
+ email: string;
1892
+ email_verified?: boolean | null;
1893
+ phone?: string | null;
1894
+ } & {
1895
+ given_name?: string | null;
1896
+ family_name?: string | null;
1897
+ full_name?: string | null;
1898
+ picture?: string | null;
1899
+ } & {
1900
+ roles?: unknown;
1901
+ } & {
1902
+ last_login?: string | null;
1903
+ } & {
1904
+ auth0_metadata?: unknown;
1905
+ } & {
1906
+ created_at?: string | null;
1907
+ updated_at?: string | null;
1908
+ };
1909
+ };
1910
+ };
1911
+ /** @description Default Response */
1912
+ 401: {
1913
+ headers: {
1914
+ [name: string]: unknown;
1915
+ };
1916
+ content: {
1917
+ 'application/json': {
1918
+ error: string;
1919
+ };
1920
+ };
1921
+ };
1922
+ };
1923
+ };
1924
+ post?: never;
1925
+ delete?: never;
1926
+ options?: never;
1927
+ head?: never;
1928
+ patch?: never;
1929
+ trace?: never;
1930
+ };
1931
+ '/api/users/{id}': {
1932
+ parameters: {
1933
+ query?: never;
1934
+ header?: never;
1935
+ path?: never;
1936
+ cookie?: never;
1937
+ };
1938
+ /**
1939
+ * Get user by ID
1940
+ * @description Get a user by their ID
1941
+ */
1942
+ get: {
1943
+ parameters: {
1944
+ query?: never;
1945
+ header?: never;
1946
+ path: {
1947
+ id: string;
1948
+ };
1949
+ cookie?: never;
1950
+ };
1951
+ requestBody?: never;
1952
+ responses: {
1953
+ /** @description Complete user entity schema representing the users table */
1954
+ 200: {
1955
+ headers: {
1956
+ [name: string]: unknown;
1957
+ };
1958
+ content: {
1959
+ 'application/json': {
1960
+ /** Format: uuid */
1961
+ id: string;
1962
+ } & {
1963
+ auth0_id?: string | null;
1964
+ uloba_id?: string | null;
1965
+ uloba_immutable_id?: string | null;
1966
+ } & {
1967
+ /** Format: email */
1968
+ email: string;
1969
+ email_verified?: boolean | null;
1970
+ phone?: string | null;
1971
+ } & {
1972
+ given_name?: string | null;
1973
+ family_name?: string | null;
1974
+ full_name?: string | null;
1975
+ picture?: string | null;
1976
+ } & {
1977
+ roles?: unknown;
1978
+ } & {
1979
+ last_login?: string | null;
1980
+ } & {
1981
+ auth0_metadata?: unknown;
1982
+ } & {
1983
+ created_at?: string | null;
1984
+ updated_at?: string | null;
1985
+ };
1986
+ };
1987
+ };
1988
+ /** @description Default Response */
1989
+ 401: {
1990
+ headers: {
1991
+ [name: string]: unknown;
1992
+ };
1993
+ content: {
1994
+ 'application/json': {
1995
+ error: string;
1996
+ };
1997
+ };
1998
+ };
1999
+ /** @description Default Response */
2000
+ 404: {
2001
+ headers: {
2002
+ [name: string]: unknown;
2003
+ };
2004
+ content: {
2005
+ 'application/json': {
2006
+ error: string;
2007
+ };
2008
+ };
2009
+ };
2010
+ };
2011
+ };
2012
+ put?: never;
2013
+ post?: never;
2014
+ delete?: never;
2015
+ options?: never;
2016
+ head?: never;
2017
+ patch?: never;
2018
+ trace?: never;
2019
+ };
2020
+ '/api/users/uloba/{uloba_id}': {
2021
+ parameters: {
2022
+ query?: never;
2023
+ header?: never;
2024
+ path?: never;
2025
+ cookie?: never;
2026
+ };
2027
+ /**
2028
+ * Get user by uloba_id
2029
+ * @description Get a user by their uloba_id (GUID)
2030
+ */
2031
+ get: {
2032
+ parameters: {
2033
+ query?: never;
2034
+ header?: never;
2035
+ path: {
2036
+ uloba_id: string;
2037
+ };
2038
+ cookie?: never;
2039
+ };
2040
+ requestBody?: never;
2041
+ responses: {
2042
+ /** @description Complete user entity schema representing the users table */
2043
+ 200: {
2044
+ headers: {
2045
+ [name: string]: unknown;
2046
+ };
2047
+ content: {
2048
+ 'application/json': {
2049
+ /** Format: uuid */
2050
+ id: string;
2051
+ } & {
2052
+ auth0_id?: string | null;
2053
+ uloba_id?: string | null;
2054
+ uloba_immutable_id?: string | null;
2055
+ } & {
2056
+ /** Format: email */
2057
+ email: string;
2058
+ email_verified?: boolean | null;
2059
+ phone?: string | null;
2060
+ } & {
2061
+ given_name?: string | null;
2062
+ family_name?: string | null;
2063
+ full_name?: string | null;
2064
+ picture?: string | null;
2065
+ } & {
2066
+ roles?: unknown;
2067
+ } & {
2068
+ last_login?: string | null;
2069
+ } & {
2070
+ auth0_metadata?: unknown;
2071
+ } & {
2072
+ created_at?: string | null;
2073
+ updated_at?: string | null;
2074
+ };
2075
+ };
2076
+ };
2077
+ /** @description Default Response */
2078
+ 401: {
2079
+ headers: {
2080
+ [name: string]: unknown;
2081
+ };
2082
+ content: {
2083
+ 'application/json': {
2084
+ error: string;
2085
+ };
2086
+ };
2087
+ };
2088
+ /** @description Default Response */
2089
+ 404: {
2090
+ headers: {
2091
+ [name: string]: unknown;
2092
+ };
2093
+ content: {
2094
+ 'application/json': {
2095
+ error: string;
2096
+ };
2097
+ };
2098
+ };
2099
+ };
2100
+ };
2101
+ put?: never;
2102
+ post?: never;
2103
+ delete?: never;
2104
+ options?: never;
2105
+ head?: never;
2106
+ patch?: never;
2107
+ trace?: never;
2108
+ };
2109
+ '/api/users/onboarding': {
2110
+ parameters: {
2111
+ query?: never;
2112
+ header?: never;
2113
+ path?: never;
2114
+ cookie?: never;
2115
+ };
2116
+ get?: never;
2117
+ put?: never;
2118
+ /**
2119
+ * Complete onboarding
2120
+ * @description Complete user onboarding after authentication
2121
+ */
2122
+ post: {
2123
+ parameters: {
2124
+ query?: never;
2125
+ header?: never;
2126
+ path?: never;
2127
+ cookie?: never;
2128
+ };
2129
+ requestBody?: {
2130
+ content: {
2131
+ 'application/json': {
2132
+ settings?: {
2133
+ theme?: string;
2134
+ language?: string;
2135
+ notifications?: {
2136
+ email?: boolean;
2137
+ sms?: boolean;
2138
+ push?: boolean;
2139
+ };
2140
+ };
2141
+ gdpr_consent?: {
2142
+ marketing: boolean;
2143
+ analytics: boolean;
2144
+ necessary: boolean;
2145
+ };
2146
+ };
2147
+ };
2148
+ };
2149
+ responses: {
2150
+ /** @description Default Response */
2151
+ 200: {
2152
+ headers: {
2153
+ [name: string]: unknown;
2154
+ };
2155
+ content: {
2156
+ 'application/json': {
2157
+ /** Format: uuid */
2158
+ account_id: string;
2159
+ created: boolean;
2160
+ message: string;
2161
+ };
2162
+ };
2163
+ };
2164
+ };
2165
+ };
2166
+ delete?: never;
2167
+ options?: never;
2168
+ head?: never;
2169
+ patch?: never;
2170
+ trace?: never;
2171
+ };
2172
+ '/api/users/onboarding/status': {
2173
+ parameters: {
2174
+ query?: never;
2175
+ header?: never;
2176
+ path?: never;
2177
+ cookie?: never;
2178
+ };
2179
+ /**
2180
+ * Get onboarding status
2181
+ * @description Check if user has completed onboarding
2182
+ */
2183
+ get: {
2184
+ parameters: {
2185
+ query?: never;
2186
+ header?: never;
2187
+ path?: never;
2188
+ cookie?: never;
2189
+ };
2190
+ requestBody?: never;
2191
+ responses: {
2192
+ /** @description Default Response */
2193
+ 200: {
2194
+ headers: {
2195
+ [name: string]: unknown;
2196
+ };
2197
+ content: {
2198
+ 'application/json': {
2199
+ has_account: boolean;
2200
+ account_id: string | null;
2201
+ onboarding_completed: boolean;
2202
+ missing_steps: string[];
2203
+ };
2204
+ };
2205
+ };
2206
+ };
2207
+ };
2208
+ put?: never;
2209
+ post?: never;
2210
+ delete?: never;
2211
+ options?: never;
2212
+ head?: never;
2213
+ patch?: never;
2214
+ trace?: never;
2215
+ };
2216
+ '/api/users/change-password': {
2217
+ parameters: {
2218
+ query?: never;
2219
+ header?: never;
2220
+ path?: never;
2221
+ cookie?: never;
2222
+ };
2223
+ get?: never;
2224
+ put?: never;
2225
+ /**
2226
+ * Change password
2227
+ * @description Change user password
2228
+ */
2229
+ post: {
2230
+ parameters: {
2231
+ query?: never;
2232
+ header?: never;
2233
+ path?: never;
2234
+ cookie?: never;
2235
+ };
2236
+ requestBody: {
2237
+ content: {
2238
+ 'application/json': {
2239
+ currentPassword: string;
2240
+ newPassword: string;
2241
+ };
2242
+ };
2243
+ };
2244
+ responses: {
2245
+ /** @description Default Response */
2246
+ 200: {
2247
+ headers: {
2248
+ [name: string]: unknown;
2249
+ };
2250
+ content: {
2251
+ 'application/json': {
2252
+ message: string;
2253
+ };
2254
+ };
2255
+ };
2256
+ /** @description Default Response */
2257
+ 401: {
2258
+ headers: {
2259
+ [name: string]: unknown;
2260
+ };
2261
+ content: {
2262
+ 'application/json': {
2263
+ error: string;
2264
+ };
2265
+ };
2266
+ };
2267
+ };
2268
+ };
2269
+ delete?: never;
2270
+ options?: never;
2271
+ head?: never;
2272
+ patch?: never;
2273
+ trace?: never;
2274
+ };
2275
+ '/api/users/change-email': {
2276
+ parameters: {
2277
+ query?: never;
2278
+ header?: never;
2279
+ path?: never;
2280
+ cookie?: never;
2281
+ };
2282
+ get?: never;
2283
+ put?: never;
2284
+ /**
2285
+ * Change email
2286
+ * @description Request email address change
2287
+ */
2288
+ post: {
2289
+ parameters: {
2290
+ query?: never;
2291
+ header?: never;
2292
+ path?: never;
2293
+ cookie?: never;
2294
+ };
2295
+ requestBody: {
2296
+ content: {
2297
+ 'application/json': {
2298
+ /** Format: email */
2299
+ newEmail: string;
2300
+ password: string;
2301
+ };
2302
+ };
2303
+ };
2304
+ responses: {
2305
+ /** @description Default Response */
2306
+ 200: {
2307
+ headers: {
2308
+ [name: string]: unknown;
2309
+ };
2310
+ content: {
2311
+ 'application/json': {
2312
+ message: string;
2313
+ pendingEmail: string;
2314
+ };
2315
+ };
2316
+ };
2317
+ /** @description Default Response */
2318
+ 401: {
2319
+ headers: {
2320
+ [name: string]: unknown;
2321
+ };
2322
+ content: {
2323
+ 'application/json': {
2324
+ error: string;
2325
+ };
2326
+ };
2327
+ };
2328
+ /** @description Default Response */
2329
+ 409: {
2330
+ headers: {
2331
+ [name: string]: unknown;
2332
+ };
2333
+ content: {
2334
+ 'application/json': {
2335
+ error: string;
2336
+ };
2337
+ };
2338
+ };
2339
+ };
2340
+ };
2341
+ delete?: never;
2342
+ options?: never;
2343
+ head?: never;
2344
+ patch?: never;
2345
+ trace?: never;
2346
+ };
2347
+ '/api/users/delete-account': {
2348
+ parameters: {
2349
+ query?: never;
2350
+ header?: never;
2351
+ path?: never;
2352
+ cookie?: never;
2353
+ };
2354
+ get?: never;
2355
+ put?: never;
2356
+ /**
2357
+ * Delete account
2358
+ * @description Initiate account deletion with grace period
2359
+ */
2360
+ post: {
2361
+ parameters: {
2362
+ query?: never;
2363
+ header?: never;
2364
+ path?: never;
2365
+ cookie?: never;
2366
+ };
2367
+ requestBody: {
2368
+ content: {
2369
+ 'application/json': {
2370
+ password: string;
2371
+ reason?: string;
2372
+ feedback?: string;
2373
+ };
2374
+ };
2375
+ };
2376
+ responses: {
2377
+ /** @description Default Response */
2378
+ 200: {
2379
+ headers: {
2380
+ [name: string]: unknown;
2381
+ };
2382
+ content: {
2383
+ 'application/json': {
2384
+ message: string;
2385
+ deletionDate: string;
2386
+ };
2387
+ };
2388
+ };
2389
+ /** @description Default Response */
2390
+ 401: {
2391
+ headers: {
2392
+ [name: string]: unknown;
2393
+ };
2394
+ content: {
2395
+ 'application/json': {
2396
+ error: string;
2397
+ };
2398
+ };
2399
+ };
2400
+ };
2401
+ };
2402
+ delete?: never;
2403
+ options?: never;
2404
+ head?: never;
2405
+ patch?: never;
2406
+ trace?: never;
2407
+ };
2408
+ '/api/users/cancel-deletion': {
2409
+ parameters: {
2410
+ query?: never;
2411
+ header?: never;
2412
+ path?: never;
2413
+ cookie?: never;
2414
+ };
2415
+ get?: never;
2416
+ put?: never;
2417
+ /**
2418
+ * Cancel account deletion
2419
+ * @description Cancel a scheduled account deletion and restore the account
2420
+ */
2421
+ post: {
2422
+ parameters: {
2423
+ query?: never;
2424
+ header?: never;
2425
+ path?: never;
2426
+ cookie?: never;
2427
+ };
2428
+ requestBody?: never;
2429
+ responses: {
2430
+ /** @description Default Response */
2431
+ 200: {
2432
+ headers: {
2433
+ [name: string]: unknown;
2434
+ };
2435
+ content: {
2436
+ 'application/json': {
2437
+ message: string;
2438
+ };
2439
+ };
2440
+ };
2441
+ /** @description Default Response */
2442
+ 404: {
2443
+ headers: {
2444
+ [name: string]: unknown;
2445
+ };
2446
+ content: {
2447
+ 'application/json': {
2448
+ error: string;
2449
+ };
2450
+ };
2451
+ };
2452
+ /** @description Default Response */
2453
+ 410: {
2454
+ headers: {
2455
+ [name: string]: unknown;
2456
+ };
2457
+ content: {
2458
+ 'application/json': {
2459
+ error: string;
2460
+ };
2461
+ };
2462
+ };
2463
+ };
2464
+ };
2465
+ delete?: never;
2466
+ options?: never;
2467
+ head?: never;
2468
+ patch?: never;
2469
+ trace?: never;
2470
+ };
2471
+ '/api/users/{id}/activity/export': {
2472
+ parameters: {
2473
+ query?: never;
2474
+ header?: never;
2475
+ path?: never;
2476
+ cookie?: never;
2477
+ };
2478
+ /**
2479
+ * Export user activity data (GDPR)
2480
+ * @description Export all activity logs and sessions for a user in JSON format
2481
+ */
2482
+ get: {
2483
+ parameters: {
2484
+ query?: never;
2485
+ header?: never;
2486
+ path: {
2487
+ id: string;
2488
+ };
2489
+ cookie?: never;
2490
+ };
2491
+ requestBody?: never;
2492
+ responses: {
2493
+ /** @description Default Response */
2494
+ 200: {
2495
+ headers: {
2496
+ [name: string]: unknown;
2497
+ };
2498
+ content: {
2499
+ 'application/json': {
2500
+ data: {
2501
+ /** Format: uuid */
2502
+ user_id: string;
2503
+ /** Format: date-time */
2504
+ exported_at: string;
2505
+ activity_logs: {
2506
+ /** Format: uuid */
2507
+ id: string;
2508
+ event_name: string;
2509
+ entity_type: string;
2510
+ entity_id: string | null;
2511
+ event_data: {
2512
+ [key: string]: unknown;
2513
+ };
2514
+ ip_address: string | null;
2515
+ user_agent: string | null;
2516
+ device_type: string | null;
2517
+ /** Format: date-time */
2518
+ created_at: string;
2519
+ }[];
2520
+ sessions: {
2521
+ /** Format: uuid */
2522
+ id: string;
2523
+ /** Format: date-time */
2524
+ started_at: string;
2525
+ ended_at: string | null;
2526
+ last_activity_at: string | null;
2527
+ ip_address: string | null;
2528
+ user_agent: string | null;
2529
+ device_type: string | null;
2530
+ device_os: string | null;
2531
+ browser: string | null;
2532
+ country: string | null;
2533
+ city: string | null;
2534
+ is_active: boolean;
2535
+ }[];
2536
+ summary: {
2537
+ total_activity_count: number;
2538
+ first_activity: string | null;
2539
+ last_activity: string | null;
2540
+ event_types: string[];
2541
+ };
2542
+ };
2543
+ };
2544
+ };
2545
+ };
2546
+ };
2547
+ };
2548
+ put?: never;
2549
+ post?: never;
2550
+ delete?: never;
2551
+ options?: never;
2552
+ head?: never;
2553
+ patch?: never;
2554
+ trace?: never;
2555
+ };
2556
+ '/api/users/{id}/activity': {
2557
+ parameters: {
2558
+ query?: never;
2559
+ header?: never;
2560
+ path?: never;
2561
+ cookie?: never;
2562
+ };
2563
+ get?: never;
2564
+ put?: never;
2565
+ post?: never;
2566
+ /**
2567
+ * Delete user activity data (GDPR)
2568
+ * @description Delete all activity logs and sessions for a user (right to be forgotten)
2569
+ */
2570
+ delete: {
2571
+ parameters: {
2572
+ query?: never;
2573
+ header?: never;
2574
+ path: {
2575
+ id: string;
2576
+ };
2577
+ cookie?: never;
2578
+ };
2579
+ requestBody?: never;
2580
+ responses: {
2581
+ /** @description Default Response */
2582
+ 200: {
2583
+ headers: {
2584
+ [name: string]: unknown;
2585
+ };
2586
+ content: {
2587
+ 'application/json': {
2588
+ success: boolean;
2589
+ deleted_activity_count: number;
2590
+ deleted_session_count: number;
2591
+ };
2592
+ };
2593
+ };
2594
+ };
2595
+ };
2596
+ options?: never;
2597
+ head?: never;
2598
+ patch?: never;
2599
+ trace?: never;
2600
+ };
2601
+ '/api/users/activity/cleanup-history': {
2602
+ parameters: {
2603
+ query?: never;
2604
+ header?: never;
2605
+ path?: never;
2606
+ cookie?: never;
2607
+ };
2608
+ /**
2609
+ * Get activity cleanup history
2610
+ * @description Get history of automated activity log cleanup runs (admin only)
2611
+ */
2612
+ get: {
2613
+ parameters: {
2614
+ query?: never;
2615
+ header?: never;
2616
+ path?: never;
2617
+ cookie?: never;
2618
+ };
2619
+ requestBody?: never;
2620
+ responses: {
2621
+ /** @description Default Response */
2622
+ 200: {
2623
+ headers: {
2624
+ [name: string]: unknown;
2625
+ };
2626
+ content: {
2627
+ 'application/json': {
2628
+ data: {
2629
+ /** Format: uuid */
2630
+ id: string;
2631
+ /** Format: date-time */
2632
+ run_at: string;
2633
+ deleted_authenticated_count: number;
2634
+ deleted_anonymous_count: number;
2635
+ duration_ms: number | null;
2636
+ success: boolean;
2637
+ error_message: string | null;
2638
+ }[];
2639
+ };
2640
+ };
2641
+ };
2642
+ };
2643
+ };
2644
+ put?: never;
2645
+ post?: never;
2646
+ delete?: never;
2647
+ options?: never;
2648
+ head?: never;
2649
+ patch?: never;
2650
+ trace?: never;
2651
+ };
2652
+ '/api/users/activity/cleanup': {
2653
+ parameters: {
2654
+ query?: never;
2655
+ header?: never;
2656
+ path?: never;
2657
+ cookie?: never;
2658
+ };
2659
+ get?: never;
2660
+ put?: never;
2661
+ /**
2662
+ * Manually trigger activity cleanup
2663
+ * @description Manually run activity log cleanup (admin only)
2664
+ */
2665
+ post: {
2666
+ parameters: {
2667
+ query?: never;
2668
+ header?: never;
2669
+ path?: never;
2670
+ cookie?: never;
2671
+ };
2672
+ requestBody?: never;
2673
+ responses: {
2674
+ /** @description Default Response */
2675
+ 200: {
2676
+ headers: {
2677
+ [name: string]: unknown;
2678
+ };
2679
+ content: {
2680
+ 'application/json': {
2681
+ success: boolean;
2682
+ deleted_authenticated_count: number;
2683
+ deleted_anonymous_count: number;
2684
+ duration_ms: number;
2685
+ };
2686
+ };
2687
+ };
2688
+ };
2689
+ };
2690
+ delete?: never;
2691
+ options?: never;
2692
+ head?: never;
2693
+ patch?: never;
2694
+ trace?: never;
2695
+ };
2696
+ '/api/errors/': {
2697
+ parameters: {
2698
+ query?: never;
2699
+ header?: never;
2700
+ path?: never;
2701
+ cookie?: never;
2702
+ };
2703
+ /**
2704
+ * Get recent errors
2705
+ * @description Get recent error logs. Admin/support only.
2706
+ */
2707
+ get: {
2708
+ parameters: {
2709
+ query?: {
2710
+ limit?: number;
2711
+ offset?: number;
2712
+ level?: 'error' | 'warning' | 'fatal';
2713
+ unresolvedOnly?: boolean;
2714
+ };
2715
+ header?: never;
2716
+ path?: never;
2717
+ cookie?: never;
2718
+ };
2719
+ requestBody?: never;
2720
+ responses: {
2721
+ /** @description Default Response */
2722
+ 200: {
2723
+ headers: {
2724
+ [name: string]: unknown;
2725
+ };
2726
+ content: {
2727
+ 'application/json': {
2728
+ data: unknown[];
2729
+ pagination: {
2730
+ limit: number;
2731
+ offset: number;
2732
+ has_more: boolean;
2733
+ };
2734
+ metadata: {
2735
+ timestamp: string;
2736
+ };
2737
+ };
2738
+ };
2739
+ };
2740
+ /** @description Default Response */
2741
+ 401: {
2742
+ headers: {
2743
+ [name: string]: unknown;
2744
+ };
2745
+ content: {
2746
+ 'application/json': {
2747
+ error: string;
2748
+ };
2749
+ };
2750
+ };
2751
+ /** @description Default Response */
2752
+ 403: {
2753
+ headers: {
2754
+ [name: string]: unknown;
2755
+ };
2756
+ content: {
2757
+ 'application/json': {
2758
+ error: string;
2759
+ };
2760
+ };
2761
+ };
2762
+ };
2763
+ };
2764
+ put?: never;
2765
+ /**
2766
+ * Log an error
2767
+ * @description Log an error from client or server. No authentication required.
2768
+ */
2769
+ post: {
2770
+ parameters: {
2771
+ query?: never;
2772
+ header?: never;
2773
+ path?: never;
2774
+ cookie?: never;
2775
+ };
2776
+ requestBody: {
2777
+ content: {
2778
+ 'application/json': {
2779
+ level: 'error' | 'warning' | 'fatal';
2780
+ errorType: string;
2781
+ message: string;
2782
+ stackTrace?: string;
2783
+ errorCode?: string;
2784
+ requestPath?: string;
2785
+ requestMethod?: string;
2786
+ requestBody?: unknown;
2787
+ responseStatus?: number;
2788
+ browser?: string;
2789
+ deviceType?: string;
2790
+ os?: string;
2791
+ metadata?: unknown;
2792
+ source: 'client' | 'server' | 'api';
2793
+ };
2794
+ };
2795
+ };
2796
+ responses: {
2797
+ /** @description Default Response */
2798
+ 201: {
2799
+ headers: {
2800
+ [name: string]: unknown;
2801
+ };
2802
+ content: {
2803
+ 'application/json': {
2804
+ data: {
2805
+ id: string | null;
2806
+ logged_at: string;
2807
+ warning?: string;
2808
+ };
2809
+ metadata: {
2810
+ timestamp: string;
2811
+ };
2812
+ };
2813
+ };
2814
+ };
2815
+ };
2816
+ };
2817
+ delete?: never;
2818
+ options?: never;
2819
+ head?: never;
2820
+ patch?: never;
2821
+ trace?: never;
2822
+ };
2823
+ '/api/errors/stats': {
1391
2824
  parameters: {
1392
2825
  query?: never;
1393
2826
  header?: never;
@@ -1395,52 +2828,32 @@ export interface paths {
1395
2828
  cookie?: never;
1396
2829
  };
1397
2830
  /**
1398
- * Get user by uloba_id
1399
- * @description Get a user by their uloba_id (GUID)
2831
+ * Get error statistics
2832
+ * @description Get aggregated error statistics. Admin/support only.
1400
2833
  */
1401
2834
  get: {
1402
2835
  parameters: {
1403
- query?: never;
1404
- header?: never;
1405
- path: {
1406
- uloba_id: string;
2836
+ query?: {
2837
+ hours?: number;
1407
2838
  };
2839
+ header?: never;
2840
+ path?: never;
1408
2841
  cookie?: never;
1409
2842
  };
1410
2843
  requestBody?: never;
1411
2844
  responses: {
1412
- /** @description Complete user entity schema representing the users table */
2845
+ /** @description Default Response */
1413
2846
  200: {
1414
2847
  headers: {
1415
2848
  [name: string]: unknown;
1416
2849
  };
1417
2850
  content: {
1418
2851
  'application/json': {
1419
- /** Format: uuid */
1420
- id: string;
1421
- } & {
1422
- auth0_id?: string | null;
1423
- uloba_id?: string | null;
1424
- uloba_immutable_id?: string | null;
1425
- } & {
1426
- /** Format: email */
1427
- email: string;
1428
- email_verified?: boolean | null;
1429
- phone?: string | null;
1430
- } & {
1431
- given_name?: string | null;
1432
- family_name?: string | null;
1433
- full_name?: string | null;
1434
- picture?: string | null;
1435
- } & {
1436
- roles?: unknown;
1437
- } & {
1438
- last_login?: string | null;
1439
- } & {
1440
- auth0_metadata?: unknown;
1441
- } & {
1442
- created_at?: string | null;
1443
- updated_at?: string | null;
2852
+ data: unknown;
2853
+ metadata: {
2854
+ period_hours: number;
2855
+ timestamp: string;
2856
+ };
1444
2857
  };
1445
2858
  };
1446
2859
  };
@@ -1456,7 +2869,7 @@ export interface paths {
1456
2869
  };
1457
2870
  };
1458
2871
  /** @description Default Response */
1459
- 404: {
2872
+ 403: {
1460
2873
  headers: {
1461
2874
  [name: string]: unknown;
1462
2875
  };
@@ -1476,7 +2889,7 @@ export interface paths {
1476
2889
  patch?: never;
1477
2890
  trace?: never;
1478
2891
  };
1479
- '/api/users/onboarding': {
2892
+ '/api/errors/{id}/resolve': {
1480
2893
  parameters: {
1481
2894
  query?: never;
1482
2895
  header?: never;
@@ -1485,34 +2898,27 @@ export interface paths {
1485
2898
  };
1486
2899
  get?: never;
1487
2900
  put?: never;
2901
+ post?: never;
2902
+ delete?: never;
2903
+ options?: never;
2904
+ head?: never;
1488
2905
  /**
1489
- * Complete onboarding
1490
- * @description Complete user onboarding after authentication
2906
+ * Resolve an error
2907
+ * @description Mark an error as resolved. Admin/support only.
1491
2908
  */
1492
- post: {
2909
+ patch: {
1493
2910
  parameters: {
1494
2911
  query?: never;
1495
2912
  header?: never;
1496
- path?: never;
2913
+ path: {
2914
+ id: string;
2915
+ };
1497
2916
  cookie?: never;
1498
2917
  };
1499
2918
  requestBody?: {
1500
2919
  content: {
1501
2920
  'application/json': {
1502
- settings?: {
1503
- theme?: string;
1504
- language?: string;
1505
- notifications?: {
1506
- email?: boolean;
1507
- sms?: boolean;
1508
- push?: boolean;
1509
- };
1510
- };
1511
- gdpr_consent?: {
1512
- marketing: boolean;
1513
- analytics: boolean;
1514
- necessary: boolean;
1515
- };
2921
+ resolutionNotes?: string;
1516
2922
  };
1517
2923
  };
1518
2924
  };
@@ -1524,22 +2930,56 @@ export interface paths {
1524
2930
  };
1525
2931
  content: {
1526
2932
  'application/json': {
1527
- /** Format: uuid */
1528
- account_id: string;
1529
- created: boolean;
1530
- message: string;
2933
+ data: {
2934
+ id: string;
2935
+ resolved: boolean;
2936
+ resolved_at: string;
2937
+ resolved_by: string;
2938
+ };
2939
+ metadata: {
2940
+ timestamp: string;
2941
+ };
2942
+ };
2943
+ };
2944
+ };
2945
+ /** @description Default Response */
2946
+ 401: {
2947
+ headers: {
2948
+ [name: string]: unknown;
2949
+ };
2950
+ content: {
2951
+ 'application/json': {
2952
+ error: string;
2953
+ };
2954
+ };
2955
+ };
2956
+ /** @description Default Response */
2957
+ 403: {
2958
+ headers: {
2959
+ [name: string]: unknown;
2960
+ };
2961
+ content: {
2962
+ 'application/json': {
2963
+ error: string;
2964
+ };
2965
+ };
2966
+ };
2967
+ /** @description Default Response */
2968
+ 404: {
2969
+ headers: {
2970
+ [name: string]: unknown;
2971
+ };
2972
+ content: {
2973
+ 'application/json': {
2974
+ error: string;
1531
2975
  };
1532
2976
  };
1533
2977
  };
1534
2978
  };
1535
2979
  };
1536
- delete?: never;
1537
- options?: never;
1538
- head?: never;
1539
- patch?: never;
1540
2980
  trace?: never;
1541
2981
  };
1542
- '/api/users/onboarding/status': {
2982
+ '/api/system/metrics': {
1543
2983
  parameters: {
1544
2984
  query?: never;
1545
2985
  header?: never;
@@ -1547,12 +2987,14 @@ export interface paths {
1547
2987
  cookie?: never;
1548
2988
  };
1549
2989
  /**
1550
- * Get onboarding status
1551
- * @description Check if user has completed onboarding
2990
+ * Get system metrics
2991
+ * @description Get hourly system performance metrics. Admin/support only.
1552
2992
  */
1553
2993
  get: {
1554
2994
  parameters: {
1555
- query?: never;
2995
+ query?: {
2996
+ hours?: number;
2997
+ };
1556
2998
  header?: never;
1557
2999
  path?: never;
1558
3000
  cookie?: never;
@@ -1566,65 +3008,27 @@ export interface paths {
1566
3008
  };
1567
3009
  content: {
1568
3010
  'application/json': {
1569
- has_account: boolean;
1570
- account_id: string | null;
1571
- onboarding_completed: boolean;
1572
- missing_steps: string[];
3011
+ data: unknown[];
3012
+ metadata: {
3013
+ period_hours: number;
3014
+ timestamp: string;
3015
+ };
1573
3016
  };
1574
3017
  };
1575
3018
  };
1576
- };
1577
- };
1578
- put?: never;
1579
- post?: never;
1580
- delete?: never;
1581
- options?: never;
1582
- head?: never;
1583
- patch?: never;
1584
- trace?: never;
1585
- };
1586
- '/api/users/change-password': {
1587
- parameters: {
1588
- query?: never;
1589
- header?: never;
1590
- path?: never;
1591
- cookie?: never;
1592
- };
1593
- get?: never;
1594
- put?: never;
1595
- /**
1596
- * Change password
1597
- * @description Change user password
1598
- */
1599
- post: {
1600
- parameters: {
1601
- query?: never;
1602
- header?: never;
1603
- path?: never;
1604
- cookie?: never;
1605
- };
1606
- requestBody: {
1607
- content: {
1608
- 'application/json': {
1609
- currentPassword: string;
1610
- newPassword: string;
1611
- };
1612
- };
1613
- };
1614
- responses: {
1615
3019
  /** @description Default Response */
1616
- 200: {
3020
+ 401: {
1617
3021
  headers: {
1618
3022
  [name: string]: unknown;
1619
3023
  };
1620
3024
  content: {
1621
3025
  'application/json': {
1622
- message: string;
3026
+ error: string;
1623
3027
  };
1624
3028
  };
1625
3029
  };
1626
3030
  /** @description Default Response */
1627
- 401: {
3031
+ 403: {
1628
3032
  headers: {
1629
3033
  [name: string]: unknown;
1630
3034
  };
@@ -1636,41 +3040,35 @@ export interface paths {
1636
3040
  };
1637
3041
  };
1638
3042
  };
3043
+ put?: never;
3044
+ post?: never;
1639
3045
  delete?: never;
1640
3046
  options?: never;
1641
3047
  head?: never;
1642
3048
  patch?: never;
1643
3049
  trace?: never;
1644
3050
  };
1645
- '/api/users/change-email': {
3051
+ '/api/system/health': {
1646
3052
  parameters: {
1647
3053
  query?: never;
1648
3054
  header?: never;
1649
3055
  path?: never;
1650
3056
  cookie?: never;
1651
3057
  };
1652
- get?: never;
1653
- put?: never;
1654
3058
  /**
1655
- * Change email
1656
- * @description Request email address change
3059
+ * Get system health
3060
+ * @description Get aggregated system health metrics. Admin/support only.
1657
3061
  */
1658
- post: {
3062
+ get: {
1659
3063
  parameters: {
1660
- query?: never;
3064
+ query?: {
3065
+ hours?: number;
3066
+ };
1661
3067
  header?: never;
1662
3068
  path?: never;
1663
3069
  cookie?: never;
1664
3070
  };
1665
- requestBody: {
1666
- content: {
1667
- 'application/json': {
1668
- /** Format: email */
1669
- newEmail: string;
1670
- password: string;
1671
- };
1672
- };
1673
- };
3071
+ requestBody?: never;
1674
3072
  responses: {
1675
3073
  /** @description Default Response */
1676
3074
  200: {
@@ -1679,8 +3077,11 @@ export interface paths {
1679
3077
  };
1680
3078
  content: {
1681
3079
  'application/json': {
1682
- message: string;
1683
- pendingEmail: string;
3080
+ data: unknown;
3081
+ metadata: {
3082
+ period_hours: number;
3083
+ timestamp: string;
3084
+ };
1684
3085
  };
1685
3086
  };
1686
3087
  };
@@ -1696,7 +3097,7 @@ export interface paths {
1696
3097
  };
1697
3098
  };
1698
3099
  /** @description Default Response */
1699
- 409: {
3100
+ 403: {
1700
3101
  headers: {
1701
3102
  [name: string]: unknown;
1702
3103
  };
@@ -1708,41 +3109,35 @@ export interface paths {
1708
3109
  };
1709
3110
  };
1710
3111
  };
3112
+ put?: never;
3113
+ post?: never;
1711
3114
  delete?: never;
1712
3115
  options?: never;
1713
3116
  head?: never;
1714
3117
  patch?: never;
1715
3118
  trace?: never;
1716
3119
  };
1717
- '/api/users/delete-account': {
3120
+ '/api/system/rate-limits': {
1718
3121
  parameters: {
1719
3122
  query?: never;
1720
3123
  header?: never;
1721
3124
  path?: never;
1722
3125
  cookie?: never;
1723
3126
  };
1724
- get?: never;
1725
- put?: never;
1726
3127
  /**
1727
- * Delete account
1728
- * @description Initiate account deletion with grace period
3128
+ * Get rate limit statistics
3129
+ * @description Get rate limit violation statistics. Admin/support only.
1729
3130
  */
1730
- post: {
3131
+ get: {
1731
3132
  parameters: {
1732
- query?: never;
3133
+ query?: {
3134
+ hours?: number;
3135
+ };
1733
3136
  header?: never;
1734
3137
  path?: never;
1735
3138
  cookie?: never;
1736
3139
  };
1737
- requestBody: {
1738
- content: {
1739
- 'application/json': {
1740
- password: string;
1741
- reason?: string;
1742
- feedback?: string;
1743
- };
1744
- };
1745
- };
3140
+ requestBody?: never;
1746
3141
  responses: {
1747
3142
  /** @description Default Response */
1748
3143
  200: {
@@ -1751,8 +3146,11 @@ export interface paths {
1751
3146
  };
1752
3147
  content: {
1753
3148
  'application/json': {
1754
- message: string;
1755
- deletionDate: string;
3149
+ data: unknown;
3150
+ metadata: {
3151
+ period_hours: number;
3152
+ timestamp: string;
3153
+ };
1756
3154
  };
1757
3155
  };
1758
3156
  };
@@ -1767,15 +3165,28 @@ export interface paths {
1767
3165
  };
1768
3166
  };
1769
3167
  };
3168
+ /** @description Default Response */
3169
+ 403: {
3170
+ headers: {
3171
+ [name: string]: unknown;
3172
+ };
3173
+ content: {
3174
+ 'application/json': {
3175
+ error: string;
3176
+ };
3177
+ };
3178
+ };
1770
3179
  };
1771
3180
  };
3181
+ put?: never;
3182
+ post?: never;
1772
3183
  delete?: never;
1773
3184
  options?: never;
1774
3185
  head?: never;
1775
3186
  patch?: never;
1776
3187
  trace?: never;
1777
3188
  };
1778
- '/api/users/cancel-deletion': {
3189
+ '/api/system/metrics/refresh': {
1779
3190
  parameters: {
1780
3191
  query?: never;
1781
3192
  header?: never;
@@ -1785,8 +3196,8 @@ export interface paths {
1785
3196
  get?: never;
1786
3197
  put?: never;
1787
3198
  /**
1788
- * Cancel account deletion
1789
- * @description Cancel a scheduled account deletion and restore the account
3199
+ * Refresh system metrics
3200
+ * @description Manually refresh the metrics materialized view. Admin only.
1790
3201
  */
1791
3202
  post: {
1792
3203
  parameters: {
@@ -1804,12 +3215,18 @@ export interface paths {
1804
3215
  };
1805
3216
  content: {
1806
3217
  'application/json': {
1807
- message: string;
3218
+ data: {
3219
+ refreshed: boolean;
3220
+ timestamp: string;
3221
+ };
3222
+ metadata: {
3223
+ timestamp: string;
3224
+ };
1808
3225
  };
1809
3226
  };
1810
3227
  };
1811
3228
  /** @description Default Response */
1812
- 404: {
3229
+ 401: {
1813
3230
  headers: {
1814
3231
  [name: string]: unknown;
1815
3232
  };
@@ -1820,7 +3237,7 @@ export interface paths {
1820
3237
  };
1821
3238
  };
1822
3239
  /** @description Default Response */
1823
- 410: {
3240
+ 403: {
1824
3241
  headers: {
1825
3242
  [name: string]: unknown;
1826
3243
  };