@deepintel-ltd/farmpro-contracts 1.15.3 → 1.15.5
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/routes/commodity-deals.routes.d.ts +632 -6
- package/dist/routes/commodity-deals.routes.d.ts.map +1 -1
- package/dist/routes/commodity-deals.routes.js +17 -1
- package/dist/schemas/commodity-deals.schemas.d.ts +776 -8
- package/dist/schemas/commodity-deals.schemas.d.ts.map +1 -1
- package/dist/schemas/commodity-deals.schemas.js +73 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commodity-deals.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/commodity-deals.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,yBAAyB,qEAMpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,6CAA2C,CAAC;AAE7E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;IAUtC,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQlD,CAAC;AAEH,eAAO,MAAM,6BAA6B
|
|
1
|
+
{"version":3,"file":"commodity-deals.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/commodity-deals.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,8 @@ export const commodityDealAttributesSchema = z
|
|
|
56
56
|
companyFeeValue: z.number().nonnegative().nullable(),
|
|
57
57
|
totalWeightKg: z.number().nullable().optional(),
|
|
58
58
|
participants: z.array(dealParticipantShareSchema).optional(),
|
|
59
|
+
/** When staff commission was marked paid out to staff (null = unpaid / N/A). */
|
|
60
|
+
staffCommissionPaidAt: z.string().datetime().nullable().optional(),
|
|
59
61
|
computed: commodityDealComputedSchema,
|
|
60
62
|
})
|
|
61
63
|
.merge(timestampsSchema);
|
|
@@ -84,6 +86,8 @@ export const updateCommodityDealAttributesSchema = z.object({
|
|
|
84
86
|
dealCapital: z.number().positive().nullable().optional(),
|
|
85
87
|
companyFeeMode: companyFeeModeSchema.nullable().optional(),
|
|
86
88
|
companyFeeValue: z.number().nonnegative().nullable().optional(),
|
|
89
|
+
/** Set ISO datetime to mark paid out; null to mark unpaid. */
|
|
90
|
+
staffCommissionPaidAt: z.string().datetime().nullable().optional(),
|
|
87
91
|
});
|
|
88
92
|
export const createCommodityDealSchema = z.object({
|
|
89
93
|
type: z.literal('commodity-deals'),
|
|
@@ -120,6 +124,12 @@ export const commodityDealSummarySchema = z.object({
|
|
|
120
124
|
totalCostsOnPaidDeals: z.number(),
|
|
121
125
|
grossProfitOnPaidDeals: z.number(),
|
|
122
126
|
totalCommissionOnPaidDeals: z.number(),
|
|
127
|
+
/** Accrued staff commission on paid deals that has been marked paid out. */
|
|
128
|
+
totalStaffCommissionPaidOut: z.number().optional(),
|
|
129
|
+
/** Accrued staff commission on paid deals still unpaid to staff. */
|
|
130
|
+
totalStaffCommissionUnpaid: z.number().optional(),
|
|
131
|
+
/** True when org staff commission rate is set and > 0. */
|
|
132
|
+
staffCommissionsEnabled: z.boolean().optional(),
|
|
123
133
|
companyNetOnPaidDeals: z.number(),
|
|
124
134
|
totalCompanyCommissionOnPaidDeals: z.number().optional(),
|
|
125
135
|
totalInvestorPoolOnPaidDeals: z.number().optional(),
|
|
@@ -129,6 +139,69 @@ export const commodityDealSummarySchema = z.object({
|
|
|
129
139
|
export const commodityDealSummaryResponseSchema = z.object({
|
|
130
140
|
data: commodityDealSummarySchema,
|
|
131
141
|
});
|
|
142
|
+
export const commodityDealInsightsPeriodSchema = z.enum([
|
|
143
|
+
'this_month',
|
|
144
|
+
'last_3_months',
|
|
145
|
+
'ytd',
|
|
146
|
+
'all',
|
|
147
|
+
]);
|
|
148
|
+
export const commodityDealInsightsTotalsSchema = z.object({
|
|
149
|
+
paidDealCount: z.number().int().nonnegative(),
|
|
150
|
+
paidRevenue: z.number(),
|
|
151
|
+
totalCost: z.number(),
|
|
152
|
+
grossProfit: z.number(),
|
|
153
|
+
companyKeep: z.number(),
|
|
154
|
+
investorPool: z.number(),
|
|
155
|
+
staffCommission: z.number(),
|
|
156
|
+
/** Gross / revenue * 100 when revenue > 0; otherwise null. */
|
|
157
|
+
avgMarginPct: z.number().nullable(),
|
|
158
|
+
});
|
|
159
|
+
export const commodityDealInsightsMonthlySchema = z.object({
|
|
160
|
+
month: z.string().regex(/^\d{4}-\d{2}$/),
|
|
161
|
+
paidRevenue: z.number(),
|
|
162
|
+
companyKeep: z.number(),
|
|
163
|
+
grossProfit: z.number(),
|
|
164
|
+
dealCount: z.number().int().nonnegative(),
|
|
165
|
+
});
|
|
166
|
+
export const commodityDealInsightsBuyerSchema = z.object({
|
|
167
|
+
buyerId: z.string().uuid(),
|
|
168
|
+
buyerName: z.string(),
|
|
169
|
+
paidRevenue: z.number(),
|
|
170
|
+
companyKeep: z.number(),
|
|
171
|
+
dealCount: z.number().int().nonnegative(),
|
|
172
|
+
marginPct: z.number().nullable(),
|
|
173
|
+
});
|
|
174
|
+
export const commodityDealInsightsPipelineSchema = z.object({
|
|
175
|
+
invoicedUnpaidCount: z.number().int().nonnegative(),
|
|
176
|
+
overdueCount: z.number().int().nonnegative(),
|
|
177
|
+
unrealizedGrossProfit: z.number(),
|
|
178
|
+
unpaidInvoiceTotal: z.number(),
|
|
179
|
+
overdueInvoiceTotal: z.number(),
|
|
180
|
+
});
|
|
181
|
+
export const commodityDealInsightsSchema = z.object({
|
|
182
|
+
period: commodityDealInsightsPeriodSchema,
|
|
183
|
+
currency: z.string().length(3).default('NGN'),
|
|
184
|
+
/** Non-cancelled deals in the org (for empty-state branching). */
|
|
185
|
+
totalDealCount: z.number().int().nonnegative(),
|
|
186
|
+
totals: commodityDealInsightsTotalsSchema,
|
|
187
|
+
prior: commodityDealInsightsTotalsSchema.nullable(),
|
|
188
|
+
monthly: z.array(commodityDealInsightsMonthlySchema),
|
|
189
|
+
profitSplit: z.object({
|
|
190
|
+
companyKeep: z.number(),
|
|
191
|
+
investorPool: z.number(),
|
|
192
|
+
staffCommission: z.number(),
|
|
193
|
+
}),
|
|
194
|
+
byBuyer: z.array(commodityDealInsightsBuyerSchema),
|
|
195
|
+
/** Current open pipeline — not filtered by `period`. */
|
|
196
|
+
pipeline: commodityDealInsightsPipelineSchema,
|
|
197
|
+
/** Accrued staff commission on paid deals still unpaid to staff (current, not period-filtered). */
|
|
198
|
+
staffCommissionUnpaid: z.number(),
|
|
199
|
+
/** Derived the same way as summary: org rate > 0 or paid deals accrued commission. */
|
|
200
|
+
staffCommissionsEnabled: z.boolean(),
|
|
201
|
+
});
|
|
202
|
+
export const commodityDealInsightsResponseSchema = z.object({
|
|
203
|
+
data: commodityDealInsightsSchema,
|
|
204
|
+
});
|
|
132
205
|
export const myEarningsAttributesSchema = z.object({
|
|
133
206
|
realizedEarnings: z.number(),
|
|
134
207
|
projectedEarnings: z.number(),
|