@deepintel-ltd/farmpro-contracts 1.11.12 → 1.14.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staff.routes.d.ts","sourceRoot":"","sources":["../../src/routes/staff.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJtB,CAAC"}
@@ -0,0 +1,144 @@
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { createStaffMemberSchema, updateStaffMemberSchema, createStaffPaymentSchema, createBulkStaffPaymentsSchema, staffMemberResponseSchema, staffMemberListResponseSchema, staffPaymentResponseSchema, staffPaymentListResponseSchema, staffPayTypeSchema, } from '../schemas/staff.schemas';
4
+ import { jsonApiErrorResponseSchema, jsonApiSuccessResponseSchema, jsonApiPaginationQuerySchema, jsonApiSortQuerySchema, jsonApiFilterQuerySchema, } from '../schemas/common.schemas';
5
+ const c = initContract();
6
+ export const staffRouter = c.router({
7
+ // Payments list — before :id routes
8
+ listStaffPayments: {
9
+ method: 'GET',
10
+ path: '/farms/:farmId/staff/payments',
11
+ pathParams: z.object({ farmId: z.string().uuid() }),
12
+ query: jsonApiPaginationQuerySchema
13
+ .merge(jsonApiSortQuerySchema)
14
+ .merge(jsonApiFilterQuerySchema)
15
+ .merge(z.object({
16
+ 'filter[staffMemberId]': z.string().uuid().optional(),
17
+ })),
18
+ responses: {
19
+ 200: staffPaymentListResponseSchema,
20
+ 404: jsonApiErrorResponseSchema,
21
+ 401: jsonApiErrorResponseSchema,
22
+ },
23
+ summary: 'List staff salary payments',
24
+ description: 'List salary payments for a farm (each payment posts an Expense)',
25
+ },
26
+ // Create payment
27
+ createStaffPayment: {
28
+ method: 'POST',
29
+ path: '/farms/:farmId/staff/payments',
30
+ pathParams: z.object({ farmId: z.string().uuid() }),
31
+ body: z.object({ data: createStaffPaymentSchema }),
32
+ responses: {
33
+ 201: staffPaymentResponseSchema,
34
+ 400: jsonApiErrorResponseSchema,
35
+ 404: jsonApiErrorResponseSchema,
36
+ 401: jsonApiErrorResponseSchema,
37
+ 422: jsonApiErrorResponseSchema,
38
+ },
39
+ summary: 'Record staff salary payment',
40
+ description: 'Record a salary payment and atomically create a Salary expense',
41
+ },
42
+ // Bulk create payments
43
+ createBulkStaffPayments: {
44
+ method: 'POST',
45
+ path: '/farms/:farmId/staff/payments/bulk',
46
+ pathParams: z.object({ farmId: z.string().uuid() }),
47
+ body: z.object({ data: createBulkStaffPaymentsSchema }),
48
+ responses: {
49
+ 201: staffPaymentListResponseSchema,
50
+ 400: jsonApiErrorResponseSchema,
51
+ 404: jsonApiErrorResponseSchema,
52
+ 401: jsonApiErrorResponseSchema,
53
+ 422: jsonApiErrorResponseSchema,
54
+ },
55
+ summary: 'Record multiple staff salary payments',
56
+ description: 'Pay multiple staff for a period in one all-or-nothing transaction; each creates a Salary expense. If any item fails, no payments or expenses from the batch are kept.',
57
+ },
58
+ // List staff
59
+ listStaffMembers: {
60
+ method: 'GET',
61
+ path: '/farms/:farmId/staff',
62
+ pathParams: z.object({ farmId: z.string().uuid() }),
63
+ query: jsonApiPaginationQuerySchema
64
+ .merge(jsonApiSortQuerySchema)
65
+ .merge(jsonApiFilterQuerySchema)
66
+ .merge(z.object({
67
+ 'filter[isActive]': z.coerce.boolean().optional(),
68
+ 'filter[payType]': staffPayTypeSchema.optional(),
69
+ })),
70
+ responses: {
71
+ 200: staffMemberListResponseSchema,
72
+ 404: jsonApiErrorResponseSchema,
73
+ 401: jsonApiErrorResponseSchema,
74
+ },
75
+ summary: 'List staff members',
76
+ description: 'List payroll staff for a farm (separate from team login members)',
77
+ },
78
+ // Create staff
79
+ createStaffMember: {
80
+ method: 'POST',
81
+ path: '/farms/:farmId/staff',
82
+ pathParams: z.object({ farmId: z.string().uuid() }),
83
+ body: z.object({ data: createStaffMemberSchema }),
84
+ responses: {
85
+ 201: staffMemberResponseSchema,
86
+ 400: jsonApiErrorResponseSchema,
87
+ 404: jsonApiErrorResponseSchema,
88
+ 401: jsonApiErrorResponseSchema,
89
+ 422: jsonApiErrorResponseSchema,
90
+ },
91
+ summary: 'Add staff member',
92
+ description: 'Add someone to the farm payroll roster',
93
+ },
94
+ // Get staff by ID
95
+ getStaffMember: {
96
+ method: 'GET',
97
+ path: '/farms/:farmId/staff/:id',
98
+ pathParams: z.object({
99
+ farmId: z.string().uuid(),
100
+ id: z.string().uuid(),
101
+ }),
102
+ responses: {
103
+ 200: staffMemberResponseSchema,
104
+ 404: jsonApiErrorResponseSchema,
105
+ 401: jsonApiErrorResponseSchema,
106
+ },
107
+ summary: 'Get staff member',
108
+ },
109
+ // Update staff
110
+ updateStaffMember: {
111
+ method: 'PATCH',
112
+ path: '/farms/:farmId/staff/:id',
113
+ pathParams: z.object({
114
+ farmId: z.string().uuid(),
115
+ id: z.string().uuid(),
116
+ }),
117
+ body: z.object({ data: updateStaffMemberSchema }),
118
+ responses: {
119
+ 200: staffMemberResponseSchema,
120
+ 400: jsonApiErrorResponseSchema,
121
+ 404: jsonApiErrorResponseSchema,
122
+ 401: jsonApiErrorResponseSchema,
123
+ 422: jsonApiErrorResponseSchema,
124
+ },
125
+ summary: 'Update staff member',
126
+ },
127
+ // Deactivate / remove staff (soft: sets isActive false; hard delete only if no payments)
128
+ deleteStaffMember: {
129
+ method: 'DELETE',
130
+ path: '/farms/:farmId/staff/:id',
131
+ pathParams: z.object({
132
+ farmId: z.string().uuid(),
133
+ id: z.string().uuid(),
134
+ }),
135
+ responses: {
136
+ 204: jsonApiSuccessResponseSchema,
137
+ 404: jsonApiErrorResponseSchema,
138
+ 401: jsonApiErrorResponseSchema,
139
+ 400: jsonApiErrorResponseSchema,
140
+ },
141
+ summary: 'Remove staff member',
142
+ description: 'Hard-deletes staff with no payments; otherwise deactivates (isActive=false). Posted payments cannot be deleted.',
143
+ },
144
+ });
@@ -57,8 +57,8 @@ export declare const teamPaymentsRouter: {
57
57
  bankName: string;
58
58
  accountNumber: string;
59
59
  accountName: string;
60
- label: string;
61
60
  isActive: boolean;
61
+ label: string;
62
62
  providerAccountId: string | null;
63
63
  dailyLimit: number | null;
64
64
  monthlyLimit: number | null;
@@ -73,8 +73,8 @@ export declare const teamPaymentsRouter: {
73
73
  bankName: string;
74
74
  accountNumber: string;
75
75
  accountName: string;
76
- label: string;
77
76
  isActive: boolean;
77
+ label: string;
78
78
  providerAccountId: string | null;
79
79
  dailyLimit: number | null;
80
80
  monthlyLimit: number | null;
@@ -96,8 +96,8 @@ export declare const teamPaymentsRouter: {
96
96
  bankName: string;
97
97
  accountNumber: string;
98
98
  accountName: string;
99
- label: string;
100
99
  isActive: boolean;
100
+ label: string;
101
101
  providerAccountId: string | null;
102
102
  dailyLimit: number | null;
103
103
  monthlyLimit: number | null;
@@ -119,8 +119,8 @@ export declare const teamPaymentsRouter: {
119
119
  bankName: string;
120
120
  accountNumber: string;
121
121
  accountName: string;
122
- label: string;
123
122
  isActive: boolean;
123
+ label: string;
124
124
  providerAccountId: string | null;
125
125
  dailyLimit: number | null;
126
126
  monthlyLimit: number | null;
@@ -168,8 +168,8 @@ export declare const teamPaymentsRouter: {
168
168
  bankName: string;
169
169
  accountNumber: string;
170
170
  accountName: string;
171
- label: string;
172
171
  isActive: boolean;
172
+ label: string;
173
173
  providerAccountId: string | null;
174
174
  dailyLimit: number | null;
175
175
  monthlyLimit: number | null;
@@ -203,8 +203,8 @@ export declare const teamPaymentsRouter: {
203
203
  bankName: string;
204
204
  accountNumber: string;
205
205
  accountName: string;
206
- label: string;
207
206
  isActive: boolean;
207
+ label: string;
208
208
  providerAccountId: string | null;
209
209
  dailyLimit: number | null;
210
210
  monthlyLimit: number | null;
@@ -530,8 +530,8 @@ export declare const teamPaymentsRouter: {
530
530
  bankName: string;
531
531
  accountNumber: string;
532
532
  accountName: string;
533
- label: string;
534
533
  isActive: boolean;
534
+ label: string;
535
535
  providerAccountId?: string | undefined;
536
536
  dailyLimit?: number | undefined;
537
537
  monthlyLimit?: number | undefined;
@@ -557,8 +557,8 @@ export declare const teamPaymentsRouter: {
557
557
  bankName: string;
558
558
  accountNumber: string;
559
559
  accountName: string;
560
- label: string;
561
560
  isActive: boolean;
561
+ label: string;
562
562
  providerAccountId?: string | undefined;
563
563
  dailyLimit?: number | undefined;
564
564
  monthlyLimit?: number | undefined;
@@ -589,8 +589,8 @@ export declare const teamPaymentsRouter: {
589
589
  bankName: string;
590
590
  accountNumber: string;
591
591
  accountName: string;
592
- label: string;
593
592
  isActive: boolean;
593
+ label: string;
594
594
  providerAccountId?: string | undefined;
595
595
  dailyLimit?: number | undefined;
596
596
  monthlyLimit?: number | undefined;
@@ -647,8 +647,8 @@ export declare const teamPaymentsRouter: {
647
647
  bankName: string;
648
648
  accountNumber: string;
649
649
  accountName: string;
650
- label: string;
651
650
  isActive: boolean;
651
+ label: string;
652
652
  providerAccountId: string | null;
653
653
  dailyLimit: number | null;
654
654
  monthlyLimit: number | null;
@@ -663,8 +663,8 @@ export declare const teamPaymentsRouter: {
663
663
  bankName: string;
664
664
  accountNumber: string;
665
665
  accountName: string;
666
- label: string;
667
666
  isActive: boolean;
667
+ label: string;
668
668
  providerAccountId: string | null;
669
669
  dailyLimit: number | null;
670
670
  monthlyLimit: number | null;
@@ -686,8 +686,8 @@ export declare const teamPaymentsRouter: {
686
686
  bankName: string;
687
687
  accountNumber: string;
688
688
  accountName: string;
689
- label: string;
690
689
  isActive: boolean;
690
+ label: string;
691
691
  providerAccountId: string | null;
692
692
  dailyLimit: number | null;
693
693
  monthlyLimit: number | null;
@@ -709,8 +709,8 @@ export declare const teamPaymentsRouter: {
709
709
  bankName: string;
710
710
  accountNumber: string;
711
711
  accountName: string;
712
- label: string;
713
712
  isActive: boolean;
713
+ label: string;
714
714
  providerAccountId: string | null;
715
715
  dailyLimit: number | null;
716
716
  monthlyLimit: number | null;
@@ -758,8 +758,8 @@ export declare const teamPaymentsRouter: {
758
758
  bankName: string;
759
759
  accountNumber: string;
760
760
  accountName: string;
761
- label: string;
762
761
  isActive: boolean;
762
+ label: string;
763
763
  providerAccountId: string | null;
764
764
  dailyLimit: number | null;
765
765
  monthlyLimit: number | null;
@@ -793,8 +793,8 @@ export declare const teamPaymentsRouter: {
793
793
  bankName: string;
794
794
  accountNumber: string;
795
795
  accountName: string;
796
- label: string;
797
796
  isActive: boolean;
797
+ label: string;
798
798
  providerAccountId: string | null;
799
799
  dailyLimit: number | null;
800
800
  monthlyLimit: number | null;
@@ -1313,8 +1313,8 @@ export declare const teamPaymentsRouter: {
1313
1313
  bankName: string;
1314
1314
  accountNumber: string;
1315
1315
  accountName: string;
1316
- label: string;
1317
1316
  isActive: boolean;
1317
+ label: string;
1318
1318
  providerAccountId: string | null;
1319
1319
  dailyLimit: number | null;
1320
1320
  monthlyLimit: number | null;
@@ -1329,8 +1329,8 @@ export declare const teamPaymentsRouter: {
1329
1329
  bankName: string;
1330
1330
  accountNumber: string;
1331
1331
  accountName: string;
1332
- label: string;
1333
1332
  isActive: boolean;
1333
+ label: string;
1334
1334
  providerAccountId: string | null;
1335
1335
  dailyLimit: number | null;
1336
1336
  monthlyLimit: number | null;
@@ -1352,8 +1352,8 @@ export declare const teamPaymentsRouter: {
1352
1352
  bankName: string;
1353
1353
  accountNumber: string;
1354
1354
  accountName: string;
1355
- label: string;
1356
1355
  isActive: boolean;
1356
+ label: string;
1357
1357
  providerAccountId: string | null;
1358
1358
  dailyLimit: number | null;
1359
1359
  monthlyLimit: number | null;
@@ -1375,8 +1375,8 @@ export declare const teamPaymentsRouter: {
1375
1375
  bankName: string;
1376
1376
  accountNumber: string;
1377
1377
  accountName: string;
1378
- label: string;
1379
1378
  isActive: boolean;
1379
+ label: string;
1380
1380
  providerAccountId: string | null;
1381
1381
  dailyLimit: number | null;
1382
1382
  monthlyLimit: number | null;
@@ -1424,8 +1424,8 @@ export declare const teamPaymentsRouter: {
1424
1424
  bankName: string;
1425
1425
  accountNumber: string;
1426
1426
  accountName: string;
1427
- label: string;
1428
1427
  isActive: boolean;
1428
+ label: string;
1429
1429
  providerAccountId: string | null;
1430
1430
  dailyLimit: number | null;
1431
1431
  monthlyLimit: number | null;
@@ -1459,8 +1459,8 @@ export declare const teamPaymentsRouter: {
1459
1459
  bankName: string;
1460
1460
  accountNumber: string;
1461
1461
  accountName: string;
1462
- label: string;
1463
1462
  isActive: boolean;
1463
+ label: string;
1464
1464
  providerAccountId: string | null;
1465
1465
  dailyLimit: number | null;
1466
1466
  monthlyLimit: number | null;
@@ -1789,8 +1789,8 @@ export declare const teamPaymentsRouter: {
1789
1789
  bankName?: string | undefined;
1790
1790
  accountNumber?: string | undefined;
1791
1791
  accountName?: string | undefined;
1792
- label?: string | undefined;
1793
1792
  isActive?: boolean | undefined;
1793
+ label?: string | undefined;
1794
1794
  providerAccountId?: string | undefined;
1795
1795
  dailyLimit?: number | undefined;
1796
1796
  monthlyLimit?: number | undefined;
@@ -1801,8 +1801,8 @@ export declare const teamPaymentsRouter: {
1801
1801
  bankName?: string | undefined;
1802
1802
  accountNumber?: string | undefined;
1803
1803
  accountName?: string | undefined;
1804
- label?: string | undefined;
1805
1804
  isActive?: boolean | undefined;
1805
+ label?: string | undefined;
1806
1806
  providerAccountId?: string | undefined;
1807
1807
  dailyLimit?: number | undefined;
1808
1808
  monthlyLimit?: number | undefined;
@@ -1817,8 +1817,8 @@ export declare const teamPaymentsRouter: {
1817
1817
  bankName?: string | undefined;
1818
1818
  accountNumber?: string | undefined;
1819
1819
  accountName?: string | undefined;
1820
- label?: string | undefined;
1821
1820
  isActive?: boolean | undefined;
1821
+ label?: string | undefined;
1822
1822
  providerAccountId?: string | undefined;
1823
1823
  dailyLimit?: number | undefined;
1824
1824
  monthlyLimit?: number | undefined;
@@ -1833,8 +1833,8 @@ export declare const teamPaymentsRouter: {
1833
1833
  bankName?: string | undefined;
1834
1834
  accountNumber?: string | undefined;
1835
1835
  accountName?: string | undefined;
1836
- label?: string | undefined;
1837
1836
  isActive?: boolean | undefined;
1837
+ label?: string | undefined;
1838
1838
  providerAccountId?: string | undefined;
1839
1839
  dailyLimit?: number | undefined;
1840
1840
  monthlyLimit?: number | undefined;
@@ -1851,8 +1851,8 @@ export declare const teamPaymentsRouter: {
1851
1851
  bankName?: string | undefined;
1852
1852
  accountNumber?: string | undefined;
1853
1853
  accountName?: string | undefined;
1854
- label?: string | undefined;
1855
1854
  isActive?: boolean | undefined;
1855
+ label?: string | undefined;
1856
1856
  providerAccountId?: string | undefined;
1857
1857
  dailyLimit?: number | undefined;
1858
1858
  monthlyLimit?: number | undefined;
@@ -1869,8 +1869,8 @@ export declare const teamPaymentsRouter: {
1869
1869
  bankName?: string | undefined;
1870
1870
  accountNumber?: string | undefined;
1871
1871
  accountName?: string | undefined;
1872
- label?: string | undefined;
1873
1872
  isActive?: boolean | undefined;
1873
+ label?: string | undefined;
1874
1874
  providerAccountId?: string | undefined;
1875
1875
  dailyLimit?: number | undefined;
1876
1876
  monthlyLimit?: number | undefined;
@@ -1910,8 +1910,8 @@ export declare const teamPaymentsRouter: {
1910
1910
  bankName: string;
1911
1911
  accountNumber: string;
1912
1912
  accountName: string;
1913
- label: string;
1914
1913
  isActive: boolean;
1914
+ label: string;
1915
1915
  providerAccountId: string | null;
1916
1916
  dailyLimit: number | null;
1917
1917
  monthlyLimit: number | null;
@@ -1926,8 +1926,8 @@ export declare const teamPaymentsRouter: {
1926
1926
  bankName: string;
1927
1927
  accountNumber: string;
1928
1928
  accountName: string;
1929
- label: string;
1930
1929
  isActive: boolean;
1930
+ label: string;
1931
1931
  providerAccountId: string | null;
1932
1932
  dailyLimit: number | null;
1933
1933
  monthlyLimit: number | null;
@@ -1949,8 +1949,8 @@ export declare const teamPaymentsRouter: {
1949
1949
  bankName: string;
1950
1950
  accountNumber: string;
1951
1951
  accountName: string;
1952
- label: string;
1953
1952
  isActive: boolean;
1953
+ label: string;
1954
1954
  providerAccountId: string | null;
1955
1955
  dailyLimit: number | null;
1956
1956
  monthlyLimit: number | null;
@@ -1972,8 +1972,8 @@ export declare const teamPaymentsRouter: {
1972
1972
  bankName: string;
1973
1973
  accountNumber: string;
1974
1974
  accountName: string;
1975
- label: string;
1976
1975
  isActive: boolean;
1976
+ label: string;
1977
1977
  providerAccountId: string | null;
1978
1978
  dailyLimit: number | null;
1979
1979
  monthlyLimit: number | null;
@@ -2021,8 +2021,8 @@ export declare const teamPaymentsRouter: {
2021
2021
  bankName: string;
2022
2022
  accountNumber: string;
2023
2023
  accountName: string;
2024
- label: string;
2025
2024
  isActive: boolean;
2025
+ label: string;
2026
2026
  providerAccountId: string | null;
2027
2027
  dailyLimit: number | null;
2028
2028
  monthlyLimit: number | null;
@@ -2056,8 +2056,8 @@ export declare const teamPaymentsRouter: {
2056
2056
  bankName: string;
2057
2057
  accountNumber: string;
2058
2058
  accountName: string;
2059
- label: string;
2060
2059
  isActive: boolean;
2060
+ label: string;
2061
2061
  providerAccountId: string | null;
2062
2062
  dailyLimit: number | null;
2063
2063
  monthlyLimit: number | null;
@@ -945,6 +945,49 @@ export declare const yieldPredictionRouter: {
945
945
  confidenceScore: number;
946
946
  daysToHarvest: number | null;
947
947
  }>, "many">;
948
+ cashCropStands: z.ZodDefault<z.ZodArray<z.ZodObject<{
949
+ fieldId: z.ZodString;
950
+ fieldName: z.ZodString;
951
+ cropType: z.ZodString;
952
+ fieldArea: z.ZodNumber;
953
+ plantingDate: z.ZodNullable<z.ZodString>;
954
+ yearsToFirstHarvest: z.ZodNumber;
955
+ ageYears: z.ZodNullable<z.ZodNumber>;
956
+ yearsRemaining: z.ZodNullable<z.ZodNumber>;
957
+ stage: z.ZodEnum<["establishing", "bearing", "unknown_age"]>;
958
+ planningYieldPerHa: z.ZodNullable<z.ZodNumber>;
959
+ planningTotalYield: z.ZodNullable<z.ZodNumber>;
960
+ unit: z.ZodString;
961
+ includedInSeasonRevenue: z.ZodBoolean;
962
+ }, "strip", z.ZodTypeAny, {
963
+ plantingDate: string | null;
964
+ fieldId: string;
965
+ fieldName: string;
966
+ unit: string;
967
+ stage: "bearing" | "establishing" | "unknown_age";
968
+ cropType: string;
969
+ fieldArea: number;
970
+ yearsToFirstHarvest: number;
971
+ ageYears: number | null;
972
+ yearsRemaining: number | null;
973
+ planningYieldPerHa: number | null;
974
+ planningTotalYield: number | null;
975
+ includedInSeasonRevenue: boolean;
976
+ }, {
977
+ plantingDate: string | null;
978
+ fieldId: string;
979
+ fieldName: string;
980
+ unit: string;
981
+ stage: "bearing" | "establishing" | "unknown_age";
982
+ cropType: string;
983
+ fieldArea: number;
984
+ yearsToFirstHarvest: number;
985
+ ageYears: number | null;
986
+ yearsRemaining: number | null;
987
+ planningYieldPerHa: number | null;
988
+ planningTotalYield: number | null;
989
+ includedInSeasonRevenue: boolean;
990
+ }>, "many">>;
948
991
  overallMetrics: z.ZodObject<{
949
992
  totalArea: z.ZodNumber;
950
993
  averageConfidence: z.ZodNumber;
@@ -994,6 +1037,21 @@ export declare const yieldPredictionRouter: {
994
1037
  confidenceScore: number;
995
1038
  daysToHarvest: number | null;
996
1039
  }[];
1040
+ cashCropStands: {
1041
+ plantingDate: string | null;
1042
+ fieldId: string;
1043
+ fieldName: string;
1044
+ unit: string;
1045
+ stage: "bearing" | "establishing" | "unknown_age";
1046
+ cropType: string;
1047
+ fieldArea: number;
1048
+ yearsToFirstHarvest: number;
1049
+ ageYears: number | null;
1050
+ yearsRemaining: number | null;
1051
+ planningYieldPerHa: number | null;
1052
+ planningTotalYield: number | null;
1053
+ includedInSeasonRevenue: boolean;
1054
+ }[];
997
1055
  overallMetrics: {
998
1056
  totalArea: number;
999
1057
  averageConfidence: number;
@@ -1039,6 +1097,21 @@ export declare const yieldPredictionRouter: {
1039
1097
  averageConfidence: number;
1040
1098
  overallHealthStatus: "critical" | "poor" | "fair" | "good" | "excellent";
1041
1099
  };
1100
+ cashCropStands?: {
1101
+ plantingDate: string | null;
1102
+ fieldId: string;
1103
+ fieldName: string;
1104
+ unit: string;
1105
+ stage: "bearing" | "establishing" | "unknown_age";
1106
+ cropType: string;
1107
+ fieldArea: number;
1108
+ yearsToFirstHarvest: number;
1109
+ ageYears: number | null;
1110
+ yearsRemaining: number | null;
1111
+ planningYieldPerHa: number | null;
1112
+ planningTotalYield: number | null;
1113
+ includedInSeasonRevenue: boolean;
1114
+ }[] | undefined;
1042
1115
  }>;
1043
1116
  }, "strip", z.ZodTypeAny, {
1044
1117
  type: "farm-yield-summaries";
@@ -1078,6 +1151,21 @@ export declare const yieldPredictionRouter: {
1078
1151
  confidenceScore: number;
1079
1152
  daysToHarvest: number | null;
1080
1153
  }[];
1154
+ cashCropStands: {
1155
+ plantingDate: string | null;
1156
+ fieldId: string;
1157
+ fieldName: string;
1158
+ unit: string;
1159
+ stage: "bearing" | "establishing" | "unknown_age";
1160
+ cropType: string;
1161
+ fieldArea: number;
1162
+ yearsToFirstHarvest: number;
1163
+ ageYears: number | null;
1164
+ yearsRemaining: number | null;
1165
+ planningYieldPerHa: number | null;
1166
+ planningTotalYield: number | null;
1167
+ includedInSeasonRevenue: boolean;
1168
+ }[];
1081
1169
  overallMetrics: {
1082
1170
  totalArea: number;
1083
1171
  averageConfidence: number;
@@ -1127,6 +1215,21 @@ export declare const yieldPredictionRouter: {
1127
1215
  averageConfidence: number;
1128
1216
  overallHealthStatus: "critical" | "poor" | "fair" | "good" | "excellent";
1129
1217
  };
1218
+ cashCropStands?: {
1219
+ plantingDate: string | null;
1220
+ fieldId: string;
1221
+ fieldName: string;
1222
+ unit: string;
1223
+ stage: "bearing" | "establishing" | "unknown_age";
1224
+ cropType: string;
1225
+ fieldArea: number;
1226
+ yearsToFirstHarvest: number;
1227
+ ageYears: number | null;
1228
+ yearsRemaining: number | null;
1229
+ planningYieldPerHa: number | null;
1230
+ planningTotalYield: number | null;
1231
+ includedInSeasonRevenue: boolean;
1232
+ }[] | undefined;
1130
1233
  };
1131
1234
  }>;
1132
1235
  }, "strip", z.ZodTypeAny, {
@@ -1168,6 +1271,21 @@ export declare const yieldPredictionRouter: {
1168
1271
  confidenceScore: number;
1169
1272
  daysToHarvest: number | null;
1170
1273
  }[];
1274
+ cashCropStands: {
1275
+ plantingDate: string | null;
1276
+ fieldId: string;
1277
+ fieldName: string;
1278
+ unit: string;
1279
+ stage: "bearing" | "establishing" | "unknown_age";
1280
+ cropType: string;
1281
+ fieldArea: number;
1282
+ yearsToFirstHarvest: number;
1283
+ ageYears: number | null;
1284
+ yearsRemaining: number | null;
1285
+ planningYieldPerHa: number | null;
1286
+ planningTotalYield: number | null;
1287
+ includedInSeasonRevenue: boolean;
1288
+ }[];
1171
1289
  overallMetrics: {
1172
1290
  totalArea: number;
1173
1291
  averageConfidence: number;
@@ -1219,6 +1337,21 @@ export declare const yieldPredictionRouter: {
1219
1337
  averageConfidence: number;
1220
1338
  overallHealthStatus: "critical" | "poor" | "fair" | "good" | "excellent";
1221
1339
  };
1340
+ cashCropStands?: {
1341
+ plantingDate: string | null;
1342
+ fieldId: string;
1343
+ fieldName: string;
1344
+ unit: string;
1345
+ stage: "bearing" | "establishing" | "unknown_age";
1346
+ cropType: string;
1347
+ fieldArea: number;
1348
+ yearsToFirstHarvest: number;
1349
+ ageYears: number | null;
1350
+ yearsRemaining: number | null;
1351
+ planningYieldPerHa: number | null;
1352
+ planningTotalYield: number | null;
1353
+ includedInSeasonRevenue: boolean;
1354
+ }[] | undefined;
1222
1355
  };
1223
1356
  };
1224
1357
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"yield-prediction.routes.d.ts","sourceRoot":"","sources":["../../src/routes/yield-prediction.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC"}
1
+ {"version":3,"file":"yield-prediction.routes.d.ts","sourceRoot":"","sources":["../../src/routes/yield-prediction.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC"}