@deepintel-ltd/farmpro-contracts 1.7.14 → 1.7.20

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.
Files changed (126) hide show
  1. package/dist/index.d.ts +18 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +17 -0
  4. package/dist/routes/agent-workflows.routes.d.ts +88 -88
  5. package/dist/routes/agents.routes.d.ts +3266 -6
  6. package/dist/routes/agents.routes.d.ts.map +1 -1
  7. package/dist/routes/agents.routes.js +130 -1
  8. package/dist/routes/analytics.routes.d.ts +20 -20
  9. package/dist/routes/cooperative.routes.d.ts +1327 -0
  10. package/dist/routes/cooperative.routes.d.ts.map +1 -0
  11. package/dist/routes/cooperative.routes.js +47 -0
  12. package/dist/routes/documents.routes.d.ts +855 -58
  13. package/dist/routes/documents.routes.d.ts.map +1 -1
  14. package/dist/routes/documents.routes.js +43 -1
  15. package/dist/routes/equipment.routes.d.ts +38 -38
  16. package/dist/routes/extension.routes.d.ts +2431 -0
  17. package/dist/routes/extension.routes.d.ts.map +1 -0
  18. package/dist/routes/extension.routes.js +75 -0
  19. package/dist/routes/farm-status.routes.d.ts +315 -0
  20. package/dist/routes/farm-status.routes.d.ts.map +1 -0
  21. package/dist/routes/farm-status.routes.js +26 -0
  22. package/dist/routes/farms.routes.d.ts +775 -0
  23. package/dist/routes/farms.routes.d.ts.map +1 -1
  24. package/dist/routes/farms.routes.js +15 -1
  25. package/dist/routes/fertigation.routes.d.ts +148 -148
  26. package/dist/routes/field-monitoring.routes.d.ts +557 -52
  27. package/dist/routes/field-monitoring.routes.d.ts.map +1 -1
  28. package/dist/routes/field-monitoring.routes.js +23 -1
  29. package/dist/routes/field-observations.routes.d.ts +56 -56
  30. package/dist/routes/fields.routes.d.ts +156 -155
  31. package/dist/routes/fields.routes.d.ts.map +1 -1
  32. package/dist/routes/finance.routes.d.ts +3493 -0
  33. package/dist/routes/finance.routes.d.ts.map +1 -1
  34. package/dist/routes/finance.routes.js +158 -1
  35. package/dist/routes/geofences.routes.d.ts.map +1 -1
  36. package/dist/routes/index.d.ts +18 -0
  37. package/dist/routes/index.d.ts.map +1 -1
  38. package/dist/routes/index.js +12 -0
  39. package/dist/routes/irrigation.routes.d.ts +6 -6
  40. package/dist/routes/live-monitor.routes.d.ts +513 -0
  41. package/dist/routes/live-monitor.routes.d.ts.map +1 -0
  42. package/dist/routes/live-monitor.routes.js +81 -0
  43. package/dist/routes/livestock-map.routes.d.ts +4 -4
  44. package/dist/routes/measurements.routes.d.ts +13 -4
  45. package/dist/routes/measurements.routes.d.ts.map +1 -1
  46. package/dist/routes/monitoring-visualization.routes.d.ts +40 -33
  47. package/dist/routes/monitoring-visualization.routes.d.ts.map +1 -1
  48. package/dist/routes/monitoring-visualization.routes.js +7 -4
  49. package/dist/routes/notifications.routes.d.ts +1350 -0
  50. package/dist/routes/notifications.routes.d.ts.map +1 -0
  51. package/dist/routes/notifications.routes.js +66 -0
  52. package/dist/routes/pest-disease-risk.routes.d.ts +20 -20
  53. package/dist/routes/prescription-maps.routes.d.ts +567 -20
  54. package/dist/routes/prescription-maps.routes.d.ts.map +1 -1
  55. package/dist/routes/prescription-maps.routes.js +18 -1
  56. package/dist/routes/soil-tests.routes.d.ts +30 -30
  57. package/dist/routes/subscriptions.routes.d.ts +14 -14
  58. package/dist/routes/team-payments.routes.d.ts +9571 -0
  59. package/dist/routes/team-payments.routes.d.ts.map +1 -0
  60. package/dist/routes/team-payments.routes.js +262 -0
  61. package/dist/routes/weather.routes.d.ts +545 -52
  62. package/dist/routes/weather.routes.d.ts.map +1 -1
  63. package/dist/routes/weather.routes.js +13 -1
  64. package/dist/routes/yield-prediction.routes.d.ts +30 -30
  65. package/dist/schemas/agent-workflows.schemas.d.ts +92 -92
  66. package/dist/schemas/agents.schemas.d.ts +1121 -0
  67. package/dist/schemas/agents.schemas.d.ts.map +1 -1
  68. package/dist/schemas/agents.schemas.js +181 -0
  69. package/dist/schemas/analytics.schemas.d.ts +56 -56
  70. package/dist/schemas/cooperative.schemas.d.ts +560 -0
  71. package/dist/schemas/cooperative.schemas.d.ts.map +1 -0
  72. package/dist/schemas/cooperative.schemas.js +71 -0
  73. package/dist/schemas/documents.schemas.d.ts +248 -48
  74. package/dist/schemas/documents.schemas.d.ts.map +1 -1
  75. package/dist/schemas/documents.schemas.js +38 -0
  76. package/dist/schemas/equipment.schemas.d.ts +30 -30
  77. package/dist/schemas/extension.schemas.d.ts +1204 -0
  78. package/dist/schemas/extension.schemas.d.ts.map +1 -0
  79. package/dist/schemas/extension.schemas.js +68 -0
  80. package/dist/schemas/farm-status.schemas.d.ts +451 -0
  81. package/dist/schemas/farm-status.schemas.d.ts.map +1 -0
  82. package/dist/schemas/farm-status.schemas.js +44 -0
  83. package/dist/schemas/farms.schemas.d.ts +591 -0
  84. package/dist/schemas/farms.schemas.d.ts.map +1 -1
  85. package/dist/schemas/farms.schemas.js +44 -0
  86. package/dist/schemas/fertigation.schemas.d.ts +50 -50
  87. package/dist/schemas/field-monitoring.schemas.d.ts +318 -42
  88. package/dist/schemas/field-monitoring.schemas.d.ts.map +1 -1
  89. package/dist/schemas/field-monitoring.schemas.js +9 -0
  90. package/dist/schemas/field-observations.schemas.d.ts +45 -44
  91. package/dist/schemas/field-observations.schemas.d.ts.map +1 -1
  92. package/dist/schemas/fields.schemas.d.ts +188 -186
  93. package/dist/schemas/fields.schemas.d.ts.map +1 -1
  94. package/dist/schemas/fields.schemas.js +10 -2
  95. package/dist/schemas/finance.schemas.d.ts +1057 -0
  96. package/dist/schemas/finance.schemas.d.ts.map +1 -1
  97. package/dist/schemas/finance.schemas.js +170 -0
  98. package/dist/schemas/irrigation.schemas.d.ts +8 -8
  99. package/dist/schemas/live-monitor.schemas.d.ts +596 -0
  100. package/dist/schemas/live-monitor.schemas.d.ts.map +1 -0
  101. package/dist/schemas/live-monitor.schemas.js +107 -0
  102. package/dist/schemas/livestock-map.schemas.d.ts +10 -10
  103. package/dist/schemas/measurements.schemas.d.ts +21 -8
  104. package/dist/schemas/measurements.schemas.d.ts.map +1 -1
  105. package/dist/schemas/measurements.schemas.js +13 -6
  106. package/dist/schemas/monitoring-visualization.schemas.d.ts +47 -40
  107. package/dist/schemas/monitoring-visualization.schemas.d.ts.map +1 -1
  108. package/dist/schemas/monitoring-visualization.schemas.js +24 -16
  109. package/dist/schemas/notifications.schemas.d.ts +464 -0
  110. package/dist/schemas/notifications.schemas.d.ts.map +1 -0
  111. package/dist/schemas/notifications.schemas.js +40 -0
  112. package/dist/schemas/pest-disease-risk.schemas.d.ts +18 -18
  113. package/dist/schemas/prescription-maps.schemas.d.ts +41 -18
  114. package/dist/schemas/prescription-maps.schemas.d.ts.map +1 -1
  115. package/dist/schemas/prescription-maps.schemas.js +8 -0
  116. package/dist/schemas/recommendations.schemas.d.ts +2 -2
  117. package/dist/schemas/soil-tests.schemas.d.ts +28 -28
  118. package/dist/schemas/subscriptions.schemas.d.ts +22 -22
  119. package/dist/schemas/team-payments.schemas.d.ts +2604 -0
  120. package/dist/schemas/team-payments.schemas.d.ts.map +1 -0
  121. package/dist/schemas/team-payments.schemas.js +151 -0
  122. package/dist/schemas/weather.schemas.d.ts +789 -112
  123. package/dist/schemas/weather.schemas.d.ts.map +1 -1
  124. package/dist/schemas/weather.schemas.js +37 -0
  125. package/dist/schemas/yield-prediction.schemas.d.ts +12 -12
  126. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-payments.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/team-payments.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ import { z } from 'zod';
2
+ import { timestampsSchema, createJsonApiResourceSchema, jsonApiSingleResponseSchema, jsonApiCollectionResponseSchema, } from './common.schemas';
3
+ export const paymentProviderSchema = z.enum([
4
+ 'OPAY',
5
+ 'PAYSTACK',
6
+ 'FLUTTERWAVE',
7
+ 'MONO',
8
+ 'OKRA',
9
+ 'BANK_DIRECT',
10
+ ]);
11
+ export const vendorPaymentStatusSchema = z.enum([
12
+ 'DRAFT',
13
+ 'PENDING_APPROVAL',
14
+ 'PROCESSING',
15
+ 'COMPLETED',
16
+ 'FAILED',
17
+ 'REJECTED',
18
+ ]);
19
+ export const paymentApprovalActionSchema = z.enum(['APPROVED', 'REJECTED']);
20
+ export const companyPaymentAccountAttributesSchema = z.object({
21
+ organizationId: z.string().uuid(),
22
+ label: z.string(),
23
+ bankName: z.string(),
24
+ accountNumber: z.string(),
25
+ accountName: z.string(),
26
+ provider: paymentProviderSchema,
27
+ providerAccountId: z.string().nullable(),
28
+ isDefault: z.boolean(),
29
+ isActive: z.boolean(),
30
+ dailyLimit: z.number().nullable(),
31
+ monthlyLimit: z.number().nullable(),
32
+ monoLinkedAt: z.string().datetime().nullable(),
33
+ monoConsentExpiry: z.string().datetime().nullable(),
34
+ }).merge(timestampsSchema);
35
+ export const createCompanyPaymentAccountAttributesSchema = z.object({
36
+ label: z.string().min(1).max(200),
37
+ bankName: z.string().min(1).max(200),
38
+ accountNumber: z.string().min(4).max(50),
39
+ accountName: z.string().min(1).max(200),
40
+ provider: paymentProviderSchema,
41
+ providerAccountId: z.string().max(200).optional(),
42
+ providerCredentials: z.record(z.unknown()).optional(),
43
+ isDefault: z.boolean().default(false),
44
+ isActive: z.boolean().default(true),
45
+ dailyLimit: z.number().positive().optional(),
46
+ monthlyLimit: z.number().positive().optional(),
47
+ });
48
+ export const updateCompanyPaymentAccountAttributesSchema = createCompanyPaymentAccountAttributesSchema.partial();
49
+ export const createCompanyPaymentAccountSchema = z.object({
50
+ type: z.literal('company-payment-accounts'),
51
+ attributes: createCompanyPaymentAccountAttributesSchema,
52
+ });
53
+ export const updateCompanyPaymentAccountSchema = z.object({
54
+ type: z.literal('company-payment-accounts'),
55
+ id: z.string().uuid(),
56
+ attributes: updateCompanyPaymentAccountAttributesSchema,
57
+ });
58
+ export const companyPaymentAccountResourceSchema = createJsonApiResourceSchema('company-payment-accounts', companyPaymentAccountAttributesSchema);
59
+ export const companyPaymentAccountResponseSchema = jsonApiSingleResponseSchema(companyPaymentAccountResourceSchema);
60
+ export const companyPaymentAccountListResponseSchema = jsonApiCollectionResponseSchema(companyPaymentAccountResourceSchema);
61
+ export const teamSpendLimitAttributesSchema = z.object({
62
+ teamMemberId: z.string().uuid(),
63
+ farmId: z.string().uuid(),
64
+ monthlyCap: z.number().positive(),
65
+ currentMonthSpent: z.number().nonnegative(),
66
+ resetAt: z.string().datetime(),
67
+ isActive: z.boolean(),
68
+ remaining: z.number().nonnegative().optional(),
69
+ }).merge(timestampsSchema);
70
+ export const createTeamSpendLimitAttributesSchema = z.object({
71
+ teamMemberId: z.string().uuid(),
72
+ monthlyCap: z.number().positive(),
73
+ isActive: z.boolean().default(true),
74
+ });
75
+ export const updateTeamSpendLimitAttributesSchema = z.object({
76
+ monthlyCap: z.number().positive().optional(),
77
+ isActive: z.boolean().optional(),
78
+ });
79
+ export const createTeamSpendLimitSchema = z.object({
80
+ type: z.literal('team-spend-limits'),
81
+ attributes: createTeamSpendLimitAttributesSchema,
82
+ });
83
+ export const updateTeamSpendLimitSchema = z.object({
84
+ type: z.literal('team-spend-limits'),
85
+ id: z.string().uuid(),
86
+ attributes: updateTeamSpendLimitAttributesSchema,
87
+ });
88
+ export const teamSpendLimitResourceSchema = createJsonApiResourceSchema('team-spend-limits', teamSpendLimitAttributesSchema);
89
+ export const teamSpendLimitResponseSchema = jsonApiSingleResponseSchema(teamSpendLimitResourceSchema);
90
+ export const teamSpendLimitListResponseSchema = jsonApiCollectionResponseSchema(teamSpendLimitResourceSchema);
91
+ export const vendorPaymentAttributesSchema = z.object({
92
+ farmId: z.string().uuid(),
93
+ initiatedById: z.string().uuid(),
94
+ paymentAccountId: z.string().uuid(),
95
+ approvedById: z.string().uuid().nullable(),
96
+ approvalNote: z.string().nullable(),
97
+ vendorName: z.string(),
98
+ vendorBankCode: z.string(),
99
+ vendorAccountNumber: z.string(),
100
+ vendorAccountName: z.string(),
101
+ supplierId: z.string().nullable(),
102
+ amount: z.number().positive(),
103
+ currency: z.string(),
104
+ narration: z.string(),
105
+ category: z.string(),
106
+ fieldId: z.string().uuid().nullable(),
107
+ cropId: z.string().nullable(),
108
+ providerReference: z.string().nullable(),
109
+ providerTransferId: z.string().nullable(),
110
+ status: vendorPaymentStatusSchema,
111
+ failureReason: z.string().nullable(),
112
+ expenseId: z.string().uuid().nullable(),
113
+ initiatedAt: z.string().datetime(),
114
+ approvedAt: z.string().datetime().nullable(),
115
+ processedAt: z.string().datetime().nullable(),
116
+ completedAt: z.string().datetime().nullable(),
117
+ receiptUrl: z.string().nullable(),
118
+ }).merge(timestampsSchema);
119
+ export const initiateVendorPaymentAttributesSchema = z.object({
120
+ paymentAccountId: z.string().uuid(),
121
+ vendorName: z.string().min(1).max(200),
122
+ vendorBankCode: z.string().min(3).max(10),
123
+ vendorAccountNumber: z.string().min(10).max(20),
124
+ vendorAccountName: z.string().min(1).max(200).optional(),
125
+ supplierId: z.string().uuid().optional(),
126
+ amount: z.number().positive(),
127
+ currency: z.string().length(3).default('NGN'),
128
+ narration: z.string().min(1).max(500),
129
+ category: z.string().min(1).max(100),
130
+ fieldId: z.string().uuid().optional(),
131
+ cropId: z.string().optional(),
132
+ });
133
+ export const initiateVendorPaymentSchema = z.object({
134
+ type: z.literal('vendor-payments'),
135
+ attributes: initiateVendorPaymentAttributesSchema,
136
+ });
137
+ export const paymentApprovalActionInputSchema = z.object({
138
+ notes: z.string().max(2000).optional(),
139
+ });
140
+ export const paymentApprovalAttributesSchema = z.object({
141
+ vendorPaymentId: z.string().uuid(),
142
+ approverId: z.string().uuid(),
143
+ action: paymentApprovalActionSchema,
144
+ notes: z.string().nullable(),
145
+ createdAt: z.string().datetime(),
146
+ });
147
+ export const paymentApprovalResourceSchema = createJsonApiResourceSchema('payment-approvals', paymentApprovalAttributesSchema);
148
+ export const vendorPaymentResourceSchema = createJsonApiResourceSchema('vendor-payments', vendorPaymentAttributesSchema);
149
+ export const vendorPaymentResponseSchema = jsonApiSingleResponseSchema(vendorPaymentResourceSchema);
150
+ export const vendorPaymentListResponseSchema = jsonApiCollectionResponseSchema(vendorPaymentResourceSchema);
151
+ export const paymentApprovalListResponseSchema = jsonApiCollectionResponseSchema(vendorPaymentResourceSchema);