@deepintel-ltd/farmpro-contracts 1.5.2 → 1.5.4

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.
@@ -1251,6 +1251,1294 @@ export declare const fieldMonitoringRouter: {
1251
1251
  }>;
1252
1252
  };
1253
1253
  };
1254
+ getIntelligentSoilProfile: {
1255
+ summary: "Get intelligent unified soil profile aggregating all data sources with LLM-powered recommendations";
1256
+ method: "GET";
1257
+ path: "/farms/:farmId/fields/:fieldId/monitoring/soil/profile/intelligent";
1258
+ responses: {
1259
+ 200: z.ZodObject<{
1260
+ fieldId: z.ZodString;
1261
+ fieldName: z.ZodString;
1262
+ coordinates: z.ZodObject<{
1263
+ latitude: z.ZodNumber;
1264
+ longitude: z.ZodNumber;
1265
+ }, "strip", z.ZodTypeAny, {
1266
+ latitude: number;
1267
+ longitude: number;
1268
+ }, {
1269
+ latitude: number;
1270
+ longitude: number;
1271
+ }>;
1272
+ nutrients: z.ZodObject<{
1273
+ pH: z.ZodObject<{
1274
+ value: z.ZodNullable<z.ZodNumber>;
1275
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1276
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1277
+ confidence: z.ZodNumber;
1278
+ lastUpdated: z.ZodString;
1279
+ sourceId: z.ZodOptional<z.ZodString>;
1280
+ }, "strip", z.ZodTypeAny, {
1281
+ value: number | null;
1282
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1283
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1284
+ confidence: number;
1285
+ lastUpdated: string;
1286
+ sourceId?: string | undefined;
1287
+ }, {
1288
+ value: number | null;
1289
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1290
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1291
+ confidence: number;
1292
+ lastUpdated: string;
1293
+ sourceId?: string | undefined;
1294
+ }>;
1295
+ nitrogen: z.ZodObject<{
1296
+ value: z.ZodNullable<z.ZodNumber>;
1297
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1298
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1299
+ confidence: z.ZodNumber;
1300
+ lastUpdated: z.ZodString;
1301
+ sourceId: z.ZodOptional<z.ZodString>;
1302
+ }, "strip", z.ZodTypeAny, {
1303
+ value: number | null;
1304
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1305
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1306
+ confidence: number;
1307
+ lastUpdated: string;
1308
+ sourceId?: string | undefined;
1309
+ }, {
1310
+ value: number | null;
1311
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1312
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1313
+ confidence: number;
1314
+ lastUpdated: string;
1315
+ sourceId?: string | undefined;
1316
+ }>;
1317
+ phosphorus: z.ZodObject<{
1318
+ value: z.ZodNullable<z.ZodNumber>;
1319
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1320
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1321
+ confidence: z.ZodNumber;
1322
+ lastUpdated: z.ZodString;
1323
+ sourceId: z.ZodOptional<z.ZodString>;
1324
+ }, "strip", z.ZodTypeAny, {
1325
+ value: number | null;
1326
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1327
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1328
+ confidence: number;
1329
+ lastUpdated: string;
1330
+ sourceId?: string | undefined;
1331
+ }, {
1332
+ value: number | null;
1333
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1334
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1335
+ confidence: number;
1336
+ lastUpdated: string;
1337
+ sourceId?: string | undefined;
1338
+ }>;
1339
+ potassium: z.ZodObject<{
1340
+ value: z.ZodNullable<z.ZodNumber>;
1341
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1342
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1343
+ confidence: z.ZodNumber;
1344
+ lastUpdated: z.ZodString;
1345
+ sourceId: z.ZodOptional<z.ZodString>;
1346
+ }, "strip", z.ZodTypeAny, {
1347
+ value: number | null;
1348
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1349
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1350
+ confidence: number;
1351
+ lastUpdated: string;
1352
+ sourceId?: string | undefined;
1353
+ }, {
1354
+ value: number | null;
1355
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1356
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1357
+ confidence: number;
1358
+ lastUpdated: string;
1359
+ sourceId?: string | undefined;
1360
+ }>;
1361
+ organicMatter: z.ZodObject<{
1362
+ value: z.ZodNullable<z.ZodNumber>;
1363
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1364
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1365
+ confidence: z.ZodNumber;
1366
+ lastUpdated: z.ZodString;
1367
+ sourceId: z.ZodOptional<z.ZodString>;
1368
+ }, "strip", z.ZodTypeAny, {
1369
+ value: number | null;
1370
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1371
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1372
+ confidence: number;
1373
+ lastUpdated: string;
1374
+ sourceId?: string | undefined;
1375
+ }, {
1376
+ value: number | null;
1377
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1378
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1379
+ confidence: number;
1380
+ lastUpdated: string;
1381
+ sourceId?: string | undefined;
1382
+ }>;
1383
+ organicCarbon: z.ZodObject<{
1384
+ value: z.ZodNullable<z.ZodNumber>;
1385
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1386
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1387
+ confidence: z.ZodNumber;
1388
+ lastUpdated: z.ZodString;
1389
+ sourceId: z.ZodOptional<z.ZodString>;
1390
+ }, "strip", z.ZodTypeAny, {
1391
+ value: number | null;
1392
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1393
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1394
+ confidence: number;
1395
+ lastUpdated: string;
1396
+ sourceId?: string | undefined;
1397
+ }, {
1398
+ value: number | null;
1399
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1400
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1401
+ confidence: number;
1402
+ lastUpdated: string;
1403
+ sourceId?: string | undefined;
1404
+ }>;
1405
+ cec: z.ZodObject<{
1406
+ value: z.ZodNullable<z.ZodNumber>;
1407
+ unit: z.ZodEnum<["ppm", "kg/ha", "g/kg", "%", "cmol(c)/kg"]>;
1408
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1409
+ confidence: z.ZodNumber;
1410
+ lastUpdated: z.ZodString;
1411
+ sourceId: z.ZodOptional<z.ZodString>;
1412
+ }, "strip", z.ZodTypeAny, {
1413
+ value: number | null;
1414
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1415
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1416
+ confidence: number;
1417
+ lastUpdated: string;
1418
+ sourceId?: string | undefined;
1419
+ }, {
1420
+ value: number | null;
1421
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1422
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1423
+ confidence: number;
1424
+ lastUpdated: string;
1425
+ sourceId?: string | undefined;
1426
+ }>;
1427
+ }, "strip", z.ZodTypeAny, {
1428
+ pH: {
1429
+ value: number | null;
1430
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1431
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1432
+ confidence: number;
1433
+ lastUpdated: string;
1434
+ sourceId?: string | undefined;
1435
+ };
1436
+ nitrogen: {
1437
+ value: number | null;
1438
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1439
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1440
+ confidence: number;
1441
+ lastUpdated: string;
1442
+ sourceId?: string | undefined;
1443
+ };
1444
+ phosphorus: {
1445
+ value: number | null;
1446
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1447
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1448
+ confidence: number;
1449
+ lastUpdated: string;
1450
+ sourceId?: string | undefined;
1451
+ };
1452
+ potassium: {
1453
+ value: number | null;
1454
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1455
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1456
+ confidence: number;
1457
+ lastUpdated: string;
1458
+ sourceId?: string | undefined;
1459
+ };
1460
+ organicMatter: {
1461
+ value: number | null;
1462
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1463
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1464
+ confidence: number;
1465
+ lastUpdated: string;
1466
+ sourceId?: string | undefined;
1467
+ };
1468
+ organicCarbon: {
1469
+ value: number | null;
1470
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1471
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1472
+ confidence: number;
1473
+ lastUpdated: string;
1474
+ sourceId?: string | undefined;
1475
+ };
1476
+ cec: {
1477
+ value: number | null;
1478
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1479
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1480
+ confidence: number;
1481
+ lastUpdated: string;
1482
+ sourceId?: string | undefined;
1483
+ };
1484
+ }, {
1485
+ pH: {
1486
+ value: number | null;
1487
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1488
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1489
+ confidence: number;
1490
+ lastUpdated: string;
1491
+ sourceId?: string | undefined;
1492
+ };
1493
+ nitrogen: {
1494
+ value: number | null;
1495
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1496
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1497
+ confidence: number;
1498
+ lastUpdated: string;
1499
+ sourceId?: string | undefined;
1500
+ };
1501
+ phosphorus: {
1502
+ value: number | null;
1503
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1504
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1505
+ confidence: number;
1506
+ lastUpdated: string;
1507
+ sourceId?: string | undefined;
1508
+ };
1509
+ potassium: {
1510
+ value: number | null;
1511
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1512
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1513
+ confidence: number;
1514
+ lastUpdated: string;
1515
+ sourceId?: string | undefined;
1516
+ };
1517
+ organicMatter: {
1518
+ value: number | null;
1519
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1520
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1521
+ confidence: number;
1522
+ lastUpdated: string;
1523
+ sourceId?: string | undefined;
1524
+ };
1525
+ organicCarbon: {
1526
+ value: number | null;
1527
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1528
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1529
+ confidence: number;
1530
+ lastUpdated: string;
1531
+ sourceId?: string | undefined;
1532
+ };
1533
+ cec: {
1534
+ value: number | null;
1535
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1536
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
1537
+ confidence: number;
1538
+ lastUpdated: string;
1539
+ sourceId?: string | undefined;
1540
+ };
1541
+ }>;
1542
+ properties: z.ZodObject<{
1543
+ texture: z.ZodObject<{
1544
+ sand: z.ZodNumber;
1545
+ silt: z.ZodNumber;
1546
+ clay: z.ZodNumber;
1547
+ classification: z.ZodString;
1548
+ }, "strip", z.ZodTypeAny, {
1549
+ sand: number;
1550
+ silt: number;
1551
+ clay: number;
1552
+ classification: string;
1553
+ }, {
1554
+ sand: number;
1555
+ silt: number;
1556
+ clay: number;
1557
+ classification: string;
1558
+ }>;
1559
+ bulkDensity: z.ZodNumber;
1560
+ }, "strip", z.ZodTypeAny, {
1561
+ texture: {
1562
+ sand: number;
1563
+ silt: number;
1564
+ clay: number;
1565
+ classification: string;
1566
+ };
1567
+ bulkDensity: number;
1568
+ }, {
1569
+ texture: {
1570
+ sand: number;
1571
+ silt: number;
1572
+ clay: number;
1573
+ classification: string;
1574
+ };
1575
+ bulkDensity: number;
1576
+ }>;
1577
+ dataSources: z.ZodRecord<z.ZodString, z.ZodObject<{
1578
+ source: z.ZodEnum<["manual", "regional_api", "global_api", "predicted"]>;
1579
+ sourceId: z.ZodOptional<z.ZodString>;
1580
+ priority: z.ZodNumber;
1581
+ confidence: z.ZodNumber;
1582
+ date: z.ZodString;
1583
+ notes: z.ZodOptional<z.ZodString>;
1584
+ }, "strip", z.ZodTypeAny, {
1585
+ date: string;
1586
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1587
+ priority: number;
1588
+ confidence: number;
1589
+ notes?: string | undefined;
1590
+ sourceId?: string | undefined;
1591
+ }, {
1592
+ date: string;
1593
+ source: "manual" | "regional_api" | "global_api" | "predicted";
1594
+ priority: number;
1595
+ confidence: number;
1596
+ notes?: string | undefined;
1597
+ sourceId?: string | undefined;
1598
+ }>>;
1599
+ quality: z.ZodObject<{
1600
+ overall: z.ZodEnum<["excellent", "good", "fair", "poor", "critical"]>;
1601
+ score: z.ZodNumber;
1602
+ assessments: z.ZodObject<{
1603
+ pH: z.ZodObject<{
1604
+ quality: z.ZodEnum<["excellent", "good", "fair", "poor", "critical"]>;
1605
+ recommendation: z.ZodString;
1606
+ optimalRange: z.ZodOptional<z.ZodObject<{
1607
+ min: z.ZodNumber;
1608
+ max: z.ZodNumber;
1609
+ }, "strip", z.ZodTypeAny, {
1610
+ min: number;
1611
+ max: number;
1612
+ }, {
1613
+ min: number;
1614
+ max: number;
1615
+ }>>;
1616
+ currentStatus: z.ZodEnum<["optimal", "low", "high", "critical"]>;
1617
+ }, "strip", z.ZodTypeAny, {
1618
+ recommendation: string;
1619
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1620
+ currentStatus: "critical" | "low" | "high" | "optimal";
1621
+ optimalRange?: {
1622
+ min: number;
1623
+ max: number;
1624
+ } | undefined;
1625
+ }, {
1626
+ recommendation: string;
1627
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1628
+ currentStatus: "critical" | "low" | "high" | "optimal";
1629
+ optimalRange?: {
1630
+ min: number;
1631
+ max: number;
1632
+ } | undefined;
1633
+ }>;
1634
+ organicMatter: z.ZodObject<{
1635
+ quality: z.ZodEnum<["excellent", "good", "fair", "poor", "critical"]>;
1636
+ recommendation: z.ZodString;
1637
+ optimalRange: z.ZodOptional<z.ZodObject<{
1638
+ min: z.ZodNumber;
1639
+ max: z.ZodNumber;
1640
+ }, "strip", z.ZodTypeAny, {
1641
+ min: number;
1642
+ max: number;
1643
+ }, {
1644
+ min: number;
1645
+ max: number;
1646
+ }>>;
1647
+ currentStatus: z.ZodEnum<["optimal", "low", "high", "critical"]>;
1648
+ }, "strip", z.ZodTypeAny, {
1649
+ recommendation: string;
1650
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1651
+ currentStatus: "critical" | "low" | "high" | "optimal";
1652
+ optimalRange?: {
1653
+ min: number;
1654
+ max: number;
1655
+ } | undefined;
1656
+ }, {
1657
+ recommendation: string;
1658
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1659
+ currentStatus: "critical" | "low" | "high" | "optimal";
1660
+ optimalRange?: {
1661
+ min: number;
1662
+ max: number;
1663
+ } | undefined;
1664
+ }>;
1665
+ completeness: z.ZodObject<{
1666
+ score: z.ZodNumber;
1667
+ missingFields: z.ZodArray<z.ZodString, "many">;
1668
+ completeness: z.ZodEnum<["complete", "mostly_complete", "partial", "incomplete"]>;
1669
+ }, "strip", z.ZodTypeAny, {
1670
+ score: number;
1671
+ missingFields: string[];
1672
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
1673
+ }, {
1674
+ score: number;
1675
+ missingFields: string[];
1676
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
1677
+ }>;
1678
+ }, "strip", z.ZodTypeAny, {
1679
+ pH: {
1680
+ recommendation: string;
1681
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1682
+ currentStatus: "critical" | "low" | "high" | "optimal";
1683
+ optimalRange?: {
1684
+ min: number;
1685
+ max: number;
1686
+ } | undefined;
1687
+ };
1688
+ organicMatter: {
1689
+ recommendation: string;
1690
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1691
+ currentStatus: "critical" | "low" | "high" | "optimal";
1692
+ optimalRange?: {
1693
+ min: number;
1694
+ max: number;
1695
+ } | undefined;
1696
+ };
1697
+ completeness: {
1698
+ score: number;
1699
+ missingFields: string[];
1700
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
1701
+ };
1702
+ }, {
1703
+ pH: {
1704
+ recommendation: string;
1705
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1706
+ currentStatus: "critical" | "low" | "high" | "optimal";
1707
+ optimalRange?: {
1708
+ min: number;
1709
+ max: number;
1710
+ } | undefined;
1711
+ };
1712
+ organicMatter: {
1713
+ recommendation: string;
1714
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1715
+ currentStatus: "critical" | "low" | "high" | "optimal";
1716
+ optimalRange?: {
1717
+ min: number;
1718
+ max: number;
1719
+ } | undefined;
1720
+ };
1721
+ completeness: {
1722
+ score: number;
1723
+ missingFields: string[];
1724
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
1725
+ };
1726
+ }>;
1727
+ }, "strip", z.ZodTypeAny, {
1728
+ overall: "critical" | "poor" | "fair" | "good" | "excellent";
1729
+ score: number;
1730
+ assessments: {
1731
+ pH: {
1732
+ recommendation: string;
1733
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1734
+ currentStatus: "critical" | "low" | "high" | "optimal";
1735
+ optimalRange?: {
1736
+ min: number;
1737
+ max: number;
1738
+ } | undefined;
1739
+ };
1740
+ organicMatter: {
1741
+ recommendation: string;
1742
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1743
+ currentStatus: "critical" | "low" | "high" | "optimal";
1744
+ optimalRange?: {
1745
+ min: number;
1746
+ max: number;
1747
+ } | undefined;
1748
+ };
1749
+ completeness: {
1750
+ score: number;
1751
+ missingFields: string[];
1752
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
1753
+ };
1754
+ };
1755
+ }, {
1756
+ overall: "critical" | "poor" | "fair" | "good" | "excellent";
1757
+ score: number;
1758
+ assessments: {
1759
+ pH: {
1760
+ recommendation: string;
1761
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1762
+ currentStatus: "critical" | "low" | "high" | "optimal";
1763
+ optimalRange?: {
1764
+ min: number;
1765
+ max: number;
1766
+ } | undefined;
1767
+ };
1768
+ organicMatter: {
1769
+ recommendation: string;
1770
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
1771
+ currentStatus: "critical" | "low" | "high" | "optimal";
1772
+ optimalRange?: {
1773
+ min: number;
1774
+ max: number;
1775
+ } | undefined;
1776
+ };
1777
+ completeness: {
1778
+ score: number;
1779
+ missingFields: string[];
1780
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
1781
+ };
1782
+ };
1783
+ }>;
1784
+ temporal: z.ZodObject<{
1785
+ latestUpdate: z.ZodString;
1786
+ testHistory: z.ZodArray<z.ZodObject<{
1787
+ id: z.ZodString;
1788
+ date: z.ZodString;
1789
+ pH: z.ZodNumber;
1790
+ nitrogen: z.ZodNullable<z.ZodNumber>;
1791
+ phosphorus: z.ZodNullable<z.ZodNumber>;
1792
+ potassium: z.ZodNullable<z.ZodNumber>;
1793
+ }, "strip", z.ZodTypeAny, {
1794
+ date: string;
1795
+ id: string;
1796
+ pH: number;
1797
+ nitrogen: number | null;
1798
+ phosphorus: number | null;
1799
+ potassium: number | null;
1800
+ }, {
1801
+ date: string;
1802
+ id: string;
1803
+ pH: number;
1804
+ nitrogen: number | null;
1805
+ phosphorus: number | null;
1806
+ potassium: number | null;
1807
+ }>, "many">;
1808
+ trends: z.ZodOptional<z.ZodObject<{
1809
+ pH: z.ZodOptional<z.ZodObject<{
1810
+ direction: z.ZodEnum<["increasing", "decreasing", "stable"]>;
1811
+ rate: z.ZodNumber;
1812
+ }, "strip", z.ZodTypeAny, {
1813
+ direction: "stable" | "increasing" | "decreasing";
1814
+ rate: number;
1815
+ }, {
1816
+ direction: "stable" | "increasing" | "decreasing";
1817
+ rate: number;
1818
+ }>>;
1819
+ nitrogen: z.ZodOptional<z.ZodObject<{
1820
+ direction: z.ZodEnum<["increasing", "decreasing", "stable"]>;
1821
+ rate: z.ZodNumber;
1822
+ }, "strip", z.ZodTypeAny, {
1823
+ direction: "stable" | "increasing" | "decreasing";
1824
+ rate: number;
1825
+ }, {
1826
+ direction: "stable" | "increasing" | "decreasing";
1827
+ rate: number;
1828
+ }>>;
1829
+ phosphorus: z.ZodOptional<z.ZodObject<{
1830
+ direction: z.ZodEnum<["increasing", "decreasing", "stable"]>;
1831
+ rate: z.ZodNumber;
1832
+ }, "strip", z.ZodTypeAny, {
1833
+ direction: "stable" | "increasing" | "decreasing";
1834
+ rate: number;
1835
+ }, {
1836
+ direction: "stable" | "increasing" | "decreasing";
1837
+ rate: number;
1838
+ }>>;
1839
+ potassium: z.ZodOptional<z.ZodObject<{
1840
+ direction: z.ZodEnum<["increasing", "decreasing", "stable"]>;
1841
+ rate: z.ZodNumber;
1842
+ }, "strip", z.ZodTypeAny, {
1843
+ direction: "stable" | "increasing" | "decreasing";
1844
+ rate: number;
1845
+ }, {
1846
+ direction: "stable" | "increasing" | "decreasing";
1847
+ rate: number;
1848
+ }>>;
1849
+ organicMatter: z.ZodOptional<z.ZodObject<{
1850
+ direction: z.ZodEnum<["increasing", "decreasing", "stable"]>;
1851
+ rate: z.ZodNumber;
1852
+ }, "strip", z.ZodTypeAny, {
1853
+ direction: "stable" | "increasing" | "decreasing";
1854
+ rate: number;
1855
+ }, {
1856
+ direction: "stable" | "increasing" | "decreasing";
1857
+ rate: number;
1858
+ }>>;
1859
+ }, "strip", z.ZodTypeAny, {
1860
+ pH?: {
1861
+ direction: "stable" | "increasing" | "decreasing";
1862
+ rate: number;
1863
+ } | undefined;
1864
+ nitrogen?: {
1865
+ direction: "stable" | "increasing" | "decreasing";
1866
+ rate: number;
1867
+ } | undefined;
1868
+ phosphorus?: {
1869
+ direction: "stable" | "increasing" | "decreasing";
1870
+ rate: number;
1871
+ } | undefined;
1872
+ potassium?: {
1873
+ direction: "stable" | "increasing" | "decreasing";
1874
+ rate: number;
1875
+ } | undefined;
1876
+ organicMatter?: {
1877
+ direction: "stable" | "increasing" | "decreasing";
1878
+ rate: number;
1879
+ } | undefined;
1880
+ }, {
1881
+ pH?: {
1882
+ direction: "stable" | "increasing" | "decreasing";
1883
+ rate: number;
1884
+ } | undefined;
1885
+ nitrogen?: {
1886
+ direction: "stable" | "increasing" | "decreasing";
1887
+ rate: number;
1888
+ } | undefined;
1889
+ phosphorus?: {
1890
+ direction: "stable" | "increasing" | "decreasing";
1891
+ rate: number;
1892
+ } | undefined;
1893
+ potassium?: {
1894
+ direction: "stable" | "increasing" | "decreasing";
1895
+ rate: number;
1896
+ } | undefined;
1897
+ organicMatter?: {
1898
+ direction: "stable" | "increasing" | "decreasing";
1899
+ rate: number;
1900
+ } | undefined;
1901
+ }>>;
1902
+ }, "strip", z.ZodTypeAny, {
1903
+ latestUpdate: string;
1904
+ testHistory: {
1905
+ date: string;
1906
+ id: string;
1907
+ pH: number;
1908
+ nitrogen: number | null;
1909
+ phosphorus: number | null;
1910
+ potassium: number | null;
1911
+ }[];
1912
+ trends?: {
1913
+ pH?: {
1914
+ direction: "stable" | "increasing" | "decreasing";
1915
+ rate: number;
1916
+ } | undefined;
1917
+ nitrogen?: {
1918
+ direction: "stable" | "increasing" | "decreasing";
1919
+ rate: number;
1920
+ } | undefined;
1921
+ phosphorus?: {
1922
+ direction: "stable" | "increasing" | "decreasing";
1923
+ rate: number;
1924
+ } | undefined;
1925
+ potassium?: {
1926
+ direction: "stable" | "increasing" | "decreasing";
1927
+ rate: number;
1928
+ } | undefined;
1929
+ organicMatter?: {
1930
+ direction: "stable" | "increasing" | "decreasing";
1931
+ rate: number;
1932
+ } | undefined;
1933
+ } | undefined;
1934
+ }, {
1935
+ latestUpdate: string;
1936
+ testHistory: {
1937
+ date: string;
1938
+ id: string;
1939
+ pH: number;
1940
+ nitrogen: number | null;
1941
+ phosphorus: number | null;
1942
+ potassium: number | null;
1943
+ }[];
1944
+ trends?: {
1945
+ pH?: {
1946
+ direction: "stable" | "increasing" | "decreasing";
1947
+ rate: number;
1948
+ } | undefined;
1949
+ nitrogen?: {
1950
+ direction: "stable" | "increasing" | "decreasing";
1951
+ rate: number;
1952
+ } | undefined;
1953
+ phosphorus?: {
1954
+ direction: "stable" | "increasing" | "decreasing";
1955
+ rate: number;
1956
+ } | undefined;
1957
+ potassium?: {
1958
+ direction: "stable" | "increasing" | "decreasing";
1959
+ rate: number;
1960
+ } | undefined;
1961
+ organicMatter?: {
1962
+ direction: "stable" | "increasing" | "decreasing";
1963
+ rate: number;
1964
+ } | undefined;
1965
+ } | undefined;
1966
+ }>;
1967
+ recommendations: z.ZodObject<{
1968
+ immediate: z.ZodArray<z.ZodObject<{
1969
+ priority: z.ZodNumber;
1970
+ action: z.ZodString;
1971
+ details: z.ZodString;
1972
+ timing: z.ZodString;
1973
+ severity: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
1974
+ confidence: z.ZodOptional<z.ZodNumber>;
1975
+ }, "strip", z.ZodTypeAny, {
1976
+ priority: number;
1977
+ action: string;
1978
+ details: string;
1979
+ timing: string;
1980
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
1981
+ confidence?: number | undefined;
1982
+ }, {
1983
+ priority: number;
1984
+ action: string;
1985
+ details: string;
1986
+ timing: string;
1987
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
1988
+ confidence?: number | undefined;
1989
+ }>, "many">;
1990
+ seasonal: z.ZodArray<z.ZodObject<{
1991
+ priority: z.ZodNumber;
1992
+ action: z.ZodString;
1993
+ details: z.ZodString;
1994
+ timing: z.ZodString;
1995
+ confidence: z.ZodOptional<z.ZodNumber>;
1996
+ }, "strip", z.ZodTypeAny, {
1997
+ priority: number;
1998
+ action: string;
1999
+ details: string;
2000
+ timing: string;
2001
+ confidence?: number | undefined;
2002
+ }, {
2003
+ priority: number;
2004
+ action: string;
2005
+ details: string;
2006
+ timing: string;
2007
+ confidence?: number | undefined;
2008
+ }>, "many">;
2009
+ fertilizer: z.ZodArray<z.ZodObject<{
2010
+ inventoryItemId: z.ZodOptional<z.ZodString>;
2011
+ productName: z.ZodOptional<z.ZodString>;
2012
+ quantity: z.ZodNumber;
2013
+ unit: z.ZodString;
2014
+ reason: z.ZodString;
2015
+ estimatedCost: z.ZodOptional<z.ZodNumber>;
2016
+ applicationTiming: z.ZodOptional<z.ZodString>;
2017
+ confidence: z.ZodOptional<z.ZodNumber>;
2018
+ }, "strip", z.ZodTypeAny, {
2019
+ unit: string;
2020
+ quantity: number;
2021
+ reason: string;
2022
+ inventoryItemId?: string | undefined;
2023
+ estimatedCost?: number | undefined;
2024
+ confidence?: number | undefined;
2025
+ productName?: string | undefined;
2026
+ applicationTiming?: string | undefined;
2027
+ }, {
2028
+ unit: string;
2029
+ quantity: number;
2030
+ reason: string;
2031
+ inventoryItemId?: string | undefined;
2032
+ estimatedCost?: number | undefined;
2033
+ confidence?: number | undefined;
2034
+ productName?: string | undefined;
2035
+ applicationTiming?: string | undefined;
2036
+ }>, "many">;
2037
+ longTerm: z.ZodOptional<z.ZodArray<z.ZodObject<{
2038
+ priority: z.ZodNumber;
2039
+ action: z.ZodString;
2040
+ details: z.ZodString;
2041
+ timeframe: z.ZodString;
2042
+ expectedImpact: z.ZodString;
2043
+ confidence: z.ZodOptional<z.ZodNumber>;
2044
+ }, "strip", z.ZodTypeAny, {
2045
+ priority: number;
2046
+ action: string;
2047
+ details: string;
2048
+ timeframe: string;
2049
+ expectedImpact: string;
2050
+ confidence?: number | undefined;
2051
+ }, {
2052
+ priority: number;
2053
+ action: string;
2054
+ details: string;
2055
+ timeframe: string;
2056
+ expectedImpact: string;
2057
+ confidence?: number | undefined;
2058
+ }>, "many">>;
2059
+ summary: z.ZodOptional<z.ZodString>;
2060
+ }, "strip", z.ZodTypeAny, {
2061
+ fertilizer: {
2062
+ unit: string;
2063
+ quantity: number;
2064
+ reason: string;
2065
+ inventoryItemId?: string | undefined;
2066
+ estimatedCost?: number | undefined;
2067
+ confidence?: number | undefined;
2068
+ productName?: string | undefined;
2069
+ applicationTiming?: string | undefined;
2070
+ }[];
2071
+ immediate: {
2072
+ priority: number;
2073
+ action: string;
2074
+ details: string;
2075
+ timing: string;
2076
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
2077
+ confidence?: number | undefined;
2078
+ }[];
2079
+ seasonal: {
2080
+ priority: number;
2081
+ action: string;
2082
+ details: string;
2083
+ timing: string;
2084
+ confidence?: number | undefined;
2085
+ }[];
2086
+ summary?: string | undefined;
2087
+ longTerm?: {
2088
+ priority: number;
2089
+ action: string;
2090
+ details: string;
2091
+ timeframe: string;
2092
+ expectedImpact: string;
2093
+ confidence?: number | undefined;
2094
+ }[] | undefined;
2095
+ }, {
2096
+ fertilizer: {
2097
+ unit: string;
2098
+ quantity: number;
2099
+ reason: string;
2100
+ inventoryItemId?: string | undefined;
2101
+ estimatedCost?: number | undefined;
2102
+ confidence?: number | undefined;
2103
+ productName?: string | undefined;
2104
+ applicationTiming?: string | undefined;
2105
+ }[];
2106
+ immediate: {
2107
+ priority: number;
2108
+ action: string;
2109
+ details: string;
2110
+ timing: string;
2111
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
2112
+ confidence?: number | undefined;
2113
+ }[];
2114
+ seasonal: {
2115
+ priority: number;
2116
+ action: string;
2117
+ details: string;
2118
+ timing: string;
2119
+ confidence?: number | undefined;
2120
+ }[];
2121
+ summary?: string | undefined;
2122
+ longTerm?: {
2123
+ priority: number;
2124
+ action: string;
2125
+ details: string;
2126
+ timeframe: string;
2127
+ expectedImpact: string;
2128
+ confidence?: number | undefined;
2129
+ }[] | undefined;
2130
+ }>;
2131
+ metadata: z.ZodObject<{
2132
+ confidence: z.ZodNumber;
2133
+ completeness: z.ZodNumber;
2134
+ lastValidated: z.ZodString;
2135
+ nextRecommendedTest: z.ZodOptional<z.ZodString>;
2136
+ }, "strip", z.ZodTypeAny, {
2137
+ confidence: number;
2138
+ completeness: number;
2139
+ lastValidated: string;
2140
+ nextRecommendedTest?: string | undefined;
2141
+ }, {
2142
+ confidence: number;
2143
+ completeness: number;
2144
+ lastValidated: string;
2145
+ nextRecommendedTest?: string | undefined;
2146
+ }>;
2147
+ }, "strip", z.ZodTypeAny, {
2148
+ coordinates: {
2149
+ latitude: number;
2150
+ longitude: number;
2151
+ };
2152
+ metadata: {
2153
+ confidence: number;
2154
+ completeness: number;
2155
+ lastValidated: string;
2156
+ nextRecommendedTest?: string | undefined;
2157
+ };
2158
+ fieldId: string;
2159
+ fieldName: string;
2160
+ recommendations: {
2161
+ fertilizer: {
2162
+ unit: string;
2163
+ quantity: number;
2164
+ reason: string;
2165
+ inventoryItemId?: string | undefined;
2166
+ estimatedCost?: number | undefined;
2167
+ confidence?: number | undefined;
2168
+ productName?: string | undefined;
2169
+ applicationTiming?: string | undefined;
2170
+ }[];
2171
+ immediate: {
2172
+ priority: number;
2173
+ action: string;
2174
+ details: string;
2175
+ timing: string;
2176
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
2177
+ confidence?: number | undefined;
2178
+ }[];
2179
+ seasonal: {
2180
+ priority: number;
2181
+ action: string;
2182
+ details: string;
2183
+ timing: string;
2184
+ confidence?: number | undefined;
2185
+ }[];
2186
+ summary?: string | undefined;
2187
+ longTerm?: {
2188
+ priority: number;
2189
+ action: string;
2190
+ details: string;
2191
+ timeframe: string;
2192
+ expectedImpact: string;
2193
+ confidence?: number | undefined;
2194
+ }[] | undefined;
2195
+ };
2196
+ quality: {
2197
+ overall: "critical" | "poor" | "fair" | "good" | "excellent";
2198
+ score: number;
2199
+ assessments: {
2200
+ pH: {
2201
+ recommendation: string;
2202
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
2203
+ currentStatus: "critical" | "low" | "high" | "optimal";
2204
+ optimalRange?: {
2205
+ min: number;
2206
+ max: number;
2207
+ } | undefined;
2208
+ };
2209
+ organicMatter: {
2210
+ recommendation: string;
2211
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
2212
+ currentStatus: "critical" | "low" | "high" | "optimal";
2213
+ optimalRange?: {
2214
+ min: number;
2215
+ max: number;
2216
+ } | undefined;
2217
+ };
2218
+ completeness: {
2219
+ score: number;
2220
+ missingFields: string[];
2221
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
2222
+ };
2223
+ };
2224
+ };
2225
+ nutrients: {
2226
+ pH: {
2227
+ value: number | null;
2228
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2229
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2230
+ confidence: number;
2231
+ lastUpdated: string;
2232
+ sourceId?: string | undefined;
2233
+ };
2234
+ nitrogen: {
2235
+ value: number | null;
2236
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2237
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2238
+ confidence: number;
2239
+ lastUpdated: string;
2240
+ sourceId?: string | undefined;
2241
+ };
2242
+ phosphorus: {
2243
+ value: number | null;
2244
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2245
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2246
+ confidence: number;
2247
+ lastUpdated: string;
2248
+ sourceId?: string | undefined;
2249
+ };
2250
+ potassium: {
2251
+ value: number | null;
2252
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2253
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2254
+ confidence: number;
2255
+ lastUpdated: string;
2256
+ sourceId?: string | undefined;
2257
+ };
2258
+ organicMatter: {
2259
+ value: number | null;
2260
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2261
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2262
+ confidence: number;
2263
+ lastUpdated: string;
2264
+ sourceId?: string | undefined;
2265
+ };
2266
+ organicCarbon: {
2267
+ value: number | null;
2268
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2269
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2270
+ confidence: number;
2271
+ lastUpdated: string;
2272
+ sourceId?: string | undefined;
2273
+ };
2274
+ cec: {
2275
+ value: number | null;
2276
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2277
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2278
+ confidence: number;
2279
+ lastUpdated: string;
2280
+ sourceId?: string | undefined;
2281
+ };
2282
+ };
2283
+ properties: {
2284
+ texture: {
2285
+ sand: number;
2286
+ silt: number;
2287
+ clay: number;
2288
+ classification: string;
2289
+ };
2290
+ bulkDensity: number;
2291
+ };
2292
+ dataSources: Record<string, {
2293
+ date: string;
2294
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2295
+ priority: number;
2296
+ confidence: number;
2297
+ notes?: string | undefined;
2298
+ sourceId?: string | undefined;
2299
+ }>;
2300
+ temporal: {
2301
+ latestUpdate: string;
2302
+ testHistory: {
2303
+ date: string;
2304
+ id: string;
2305
+ pH: number;
2306
+ nitrogen: number | null;
2307
+ phosphorus: number | null;
2308
+ potassium: number | null;
2309
+ }[];
2310
+ trends?: {
2311
+ pH?: {
2312
+ direction: "stable" | "increasing" | "decreasing";
2313
+ rate: number;
2314
+ } | undefined;
2315
+ nitrogen?: {
2316
+ direction: "stable" | "increasing" | "decreasing";
2317
+ rate: number;
2318
+ } | undefined;
2319
+ phosphorus?: {
2320
+ direction: "stable" | "increasing" | "decreasing";
2321
+ rate: number;
2322
+ } | undefined;
2323
+ potassium?: {
2324
+ direction: "stable" | "increasing" | "decreasing";
2325
+ rate: number;
2326
+ } | undefined;
2327
+ organicMatter?: {
2328
+ direction: "stable" | "increasing" | "decreasing";
2329
+ rate: number;
2330
+ } | undefined;
2331
+ } | undefined;
2332
+ };
2333
+ }, {
2334
+ coordinates: {
2335
+ latitude: number;
2336
+ longitude: number;
2337
+ };
2338
+ metadata: {
2339
+ confidence: number;
2340
+ completeness: number;
2341
+ lastValidated: string;
2342
+ nextRecommendedTest?: string | undefined;
2343
+ };
2344
+ fieldId: string;
2345
+ fieldName: string;
2346
+ recommendations: {
2347
+ fertilizer: {
2348
+ unit: string;
2349
+ quantity: number;
2350
+ reason: string;
2351
+ inventoryItemId?: string | undefined;
2352
+ estimatedCost?: number | undefined;
2353
+ confidence?: number | undefined;
2354
+ productName?: string | undefined;
2355
+ applicationTiming?: string | undefined;
2356
+ }[];
2357
+ immediate: {
2358
+ priority: number;
2359
+ action: string;
2360
+ details: string;
2361
+ timing: string;
2362
+ severity?: "critical" | "low" | "medium" | "high" | undefined;
2363
+ confidence?: number | undefined;
2364
+ }[];
2365
+ seasonal: {
2366
+ priority: number;
2367
+ action: string;
2368
+ details: string;
2369
+ timing: string;
2370
+ confidence?: number | undefined;
2371
+ }[];
2372
+ summary?: string | undefined;
2373
+ longTerm?: {
2374
+ priority: number;
2375
+ action: string;
2376
+ details: string;
2377
+ timeframe: string;
2378
+ expectedImpact: string;
2379
+ confidence?: number | undefined;
2380
+ }[] | undefined;
2381
+ };
2382
+ quality: {
2383
+ overall: "critical" | "poor" | "fair" | "good" | "excellent";
2384
+ score: number;
2385
+ assessments: {
2386
+ pH: {
2387
+ recommendation: string;
2388
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
2389
+ currentStatus: "critical" | "low" | "high" | "optimal";
2390
+ optimalRange?: {
2391
+ min: number;
2392
+ max: number;
2393
+ } | undefined;
2394
+ };
2395
+ organicMatter: {
2396
+ recommendation: string;
2397
+ quality: "critical" | "poor" | "fair" | "good" | "excellent";
2398
+ currentStatus: "critical" | "low" | "high" | "optimal";
2399
+ optimalRange?: {
2400
+ min: number;
2401
+ max: number;
2402
+ } | undefined;
2403
+ };
2404
+ completeness: {
2405
+ score: number;
2406
+ missingFields: string[];
2407
+ completeness: "complete" | "mostly_complete" | "partial" | "incomplete";
2408
+ };
2409
+ };
2410
+ };
2411
+ nutrients: {
2412
+ pH: {
2413
+ value: number | null;
2414
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2415
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2416
+ confidence: number;
2417
+ lastUpdated: string;
2418
+ sourceId?: string | undefined;
2419
+ };
2420
+ nitrogen: {
2421
+ value: number | null;
2422
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2423
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2424
+ confidence: number;
2425
+ lastUpdated: string;
2426
+ sourceId?: string | undefined;
2427
+ };
2428
+ phosphorus: {
2429
+ value: number | null;
2430
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2431
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2432
+ confidence: number;
2433
+ lastUpdated: string;
2434
+ sourceId?: string | undefined;
2435
+ };
2436
+ potassium: {
2437
+ value: number | null;
2438
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2439
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2440
+ confidence: number;
2441
+ lastUpdated: string;
2442
+ sourceId?: string | undefined;
2443
+ };
2444
+ organicMatter: {
2445
+ value: number | null;
2446
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2447
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2448
+ confidence: number;
2449
+ lastUpdated: string;
2450
+ sourceId?: string | undefined;
2451
+ };
2452
+ organicCarbon: {
2453
+ value: number | null;
2454
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2455
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2456
+ confidence: number;
2457
+ lastUpdated: string;
2458
+ sourceId?: string | undefined;
2459
+ };
2460
+ cec: {
2461
+ value: number | null;
2462
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2463
+ unit: "ppm" | "kg/ha" | "g/kg" | "%" | "cmol(c)/kg";
2464
+ confidence: number;
2465
+ lastUpdated: string;
2466
+ sourceId?: string | undefined;
2467
+ };
2468
+ };
2469
+ properties: {
2470
+ texture: {
2471
+ sand: number;
2472
+ silt: number;
2473
+ clay: number;
2474
+ classification: string;
2475
+ };
2476
+ bulkDensity: number;
2477
+ };
2478
+ dataSources: Record<string, {
2479
+ date: string;
2480
+ source: "manual" | "regional_api" | "global_api" | "predicted";
2481
+ priority: number;
2482
+ confidence: number;
2483
+ notes?: string | undefined;
2484
+ sourceId?: string | undefined;
2485
+ }>;
2486
+ temporal: {
2487
+ latestUpdate: string;
2488
+ testHistory: {
2489
+ date: string;
2490
+ id: string;
2491
+ pH: number;
2492
+ nitrogen: number | null;
2493
+ phosphorus: number | null;
2494
+ potassium: number | null;
2495
+ }[];
2496
+ trends?: {
2497
+ pH?: {
2498
+ direction: "stable" | "increasing" | "decreasing";
2499
+ rate: number;
2500
+ } | undefined;
2501
+ nitrogen?: {
2502
+ direction: "stable" | "increasing" | "decreasing";
2503
+ rate: number;
2504
+ } | undefined;
2505
+ phosphorus?: {
2506
+ direction: "stable" | "increasing" | "decreasing";
2507
+ rate: number;
2508
+ } | undefined;
2509
+ potassium?: {
2510
+ direction: "stable" | "increasing" | "decreasing";
2511
+ rate: number;
2512
+ } | undefined;
2513
+ organicMatter?: {
2514
+ direction: "stable" | "increasing" | "decreasing";
2515
+ rate: number;
2516
+ } | undefined;
2517
+ } | undefined;
2518
+ };
2519
+ }>;
2520
+ 404: z.ZodObject<{
2521
+ message: z.ZodString;
2522
+ code: z.ZodOptional<z.ZodString>;
2523
+ }, "strip", z.ZodTypeAny, {
2524
+ message: string;
2525
+ code?: string | undefined;
2526
+ }, {
2527
+ message: string;
2528
+ code?: string | undefined;
2529
+ }>;
2530
+ 400: z.ZodObject<{
2531
+ message: z.ZodString;
2532
+ code: z.ZodOptional<z.ZodString>;
2533
+ }, "strip", z.ZodTypeAny, {
2534
+ message: string;
2535
+ code?: string | undefined;
2536
+ }, {
2537
+ message: string;
2538
+ code?: string | undefined;
2539
+ }>;
2540
+ };
2541
+ };
1254
2542
  };
1255
2543
  export type FieldMonitoringRouter = typeof fieldMonitoringRouter;
1256
2544
  //# sourceMappingURL=field-monitoring.routes.d.ts.map