@deepintel-ltd/farmpro-contracts 1.0.2 → 1.0.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.
Files changed (106) hide show
  1. package/dist/index.d.ts +43 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +84 -0
  4. package/dist/routes/analytics.routes.d.ts +754 -0
  5. package/dist/routes/analytics.routes.d.ts.map +1 -0
  6. package/dist/routes/analytics.routes.js +24 -0
  7. package/dist/routes/auth.routes.d.ts +3836 -0
  8. package/dist/routes/auth.routes.d.ts.map +1 -0
  9. package/dist/routes/auth.routes.js +158 -0
  10. package/dist/routes/categories.routes.d.ts +800 -0
  11. package/dist/routes/categories.routes.d.ts.map +1 -0
  12. package/dist/routes/categories.routes.js +120 -0
  13. package/dist/routes/documents.routes.d.ts +2476 -0
  14. package/dist/routes/documents.routes.d.ts.map +1 -0
  15. package/dist/routes/documents.routes.js +100 -0
  16. package/dist/routes/equipment.routes.d.ts +3617 -0
  17. package/dist/routes/equipment.routes.d.ts.map +1 -0
  18. package/dist/routes/equipment.routes.js +118 -0
  19. package/dist/routes/farms.routes.d.ts +2202 -0
  20. package/dist/routes/farms.routes.d.ts.map +1 -0
  21. package/dist/routes/farms.routes.js +111 -0
  22. package/dist/routes/fields.routes.d.ts +3479 -0
  23. package/dist/routes/fields.routes.d.ts.map +1 -0
  24. package/dist/routes/fields.routes.js +96 -0
  25. package/dist/routes/finance.routes.d.ts +6855 -0
  26. package/dist/routes/finance.routes.d.ts.map +1 -0
  27. package/dist/routes/finance.routes.js +259 -0
  28. package/dist/routes/harvest.routes.d.ts +2337 -0
  29. package/dist/routes/harvest.routes.d.ts.map +1 -0
  30. package/dist/routes/harvest.routes.js +99 -0
  31. package/dist/routes/index.d.ts +71 -0
  32. package/dist/routes/index.d.ts.map +1 -0
  33. package/dist/routes/index.js +45 -0
  34. package/dist/routes/inventory.routes.d.ts +2853 -0
  35. package/dist/routes/inventory.routes.d.ts.map +1 -0
  36. package/dist/routes/inventory.routes.js +121 -0
  37. package/dist/routes/soil-tests.routes.d.ts +3005 -0
  38. package/dist/routes/soil-tests.routes.d.ts.map +1 -0
  39. package/dist/routes/soil-tests.routes.js +98 -0
  40. package/dist/routes/suppliers.routes.d.ts +4190 -0
  41. package/dist/routes/suppliers.routes.d.ts.map +1 -0
  42. package/dist/routes/suppliers.routes.js +146 -0
  43. package/dist/routes/tasks.routes.d.ts +4248 -0
  44. package/dist/routes/tasks.routes.d.ts.map +1 -0
  45. package/dist/routes/tasks.routes.js +138 -0
  46. package/dist/routes/team.routes.d.ts +2210 -0
  47. package/dist/routes/team.routes.d.ts.map +1 -0
  48. package/dist/routes/team.routes.js +98 -0
  49. package/dist/routes/users.routes.d.ts +721 -0
  50. package/dist/routes/users.routes.d.ts.map +1 -0
  51. package/dist/routes/users.routes.js +35 -0
  52. package/dist/routes/weather.routes.d.ts +500 -0
  53. package/dist/routes/weather.routes.d.ts.map +1 -0
  54. package/dist/routes/weather.routes.js +23 -0
  55. package/dist/schemas/analytics.schemas.d.ts +1344 -0
  56. package/dist/schemas/analytics.schemas.d.ts.map +1 -0
  57. package/dist/schemas/analytics.schemas.js +73 -0
  58. package/dist/schemas/auth.schemas.d.ts +1093 -0
  59. package/dist/schemas/auth.schemas.d.ts.map +1 -0
  60. package/dist/schemas/auth.schemas.js +159 -0
  61. package/dist/schemas/categories.schemas.d.ts +471 -0
  62. package/dist/schemas/categories.schemas.d.ts.map +1 -0
  63. package/dist/schemas/categories.schemas.js +51 -0
  64. package/dist/schemas/common.schemas.d.ts +562 -0
  65. package/dist/schemas/common.schemas.d.ts.map +1 -0
  66. package/dist/schemas/common.schemas.js +122 -0
  67. package/dist/schemas/documents.schemas.d.ts +850 -0
  68. package/dist/schemas/documents.schemas.d.ts.map +1 -0
  69. package/dist/schemas/documents.schemas.js +75 -0
  70. package/dist/schemas/equipment.schemas.d.ts +1618 -0
  71. package/dist/schemas/equipment.schemas.d.ts.map +1 -0
  72. package/dist/schemas/equipment.schemas.js +125 -0
  73. package/dist/schemas/farms.schemas.d.ts +1171 -0
  74. package/dist/schemas/farms.schemas.d.ts.map +1 -0
  75. package/dist/schemas/farms.schemas.js +62 -0
  76. package/dist/schemas/fields.schemas.d.ts +2508 -0
  77. package/dist/schemas/fields.schemas.d.ts.map +1 -0
  78. package/dist/schemas/fields.schemas.js +125 -0
  79. package/dist/schemas/finance.schemas.d.ts +2869 -0
  80. package/dist/schemas/finance.schemas.d.ts.map +1 -0
  81. package/dist/schemas/finance.schemas.js +196 -0
  82. package/dist/schemas/harvest.schemas.d.ts +1051 -0
  83. package/dist/schemas/harvest.schemas.d.ts.map +1 -0
  84. package/dist/schemas/harvest.schemas.js +71 -0
  85. package/dist/schemas/inventory.schemas.d.ts +1138 -0
  86. package/dist/schemas/inventory.schemas.d.ts.map +1 -0
  87. package/dist/schemas/inventory.schemas.js +89 -0
  88. package/dist/schemas/soil-tests.schemas.d.ts +1885 -0
  89. package/dist/schemas/soil-tests.schemas.d.ts.map +1 -0
  90. package/dist/schemas/soil-tests.schemas.js +102 -0
  91. package/dist/schemas/suppliers.schemas.d.ts +1774 -0
  92. package/dist/schemas/suppliers.schemas.d.ts.map +1 -0
  93. package/dist/schemas/suppliers.schemas.js +121 -0
  94. package/dist/schemas/tasks.schemas.d.ts +1811 -0
  95. package/dist/schemas/tasks.schemas.d.ts.map +1 -0
  96. package/dist/schemas/tasks.schemas.js +124 -0
  97. package/dist/schemas/team.schemas.d.ts +583 -0
  98. package/dist/schemas/team.schemas.d.ts.map +1 -0
  99. package/dist/schemas/team.schemas.js +60 -0
  100. package/dist/schemas/users.schemas.d.ts +288 -0
  101. package/dist/schemas/users.schemas.d.ts.map +1 -0
  102. package/dist/schemas/users.schemas.js +32 -0
  103. package/dist/schemas/weather.schemas.d.ts +682 -0
  104. package/dist/schemas/weather.schemas.d.ts.map +1 -0
  105. package/dist/schemas/weather.schemas.js +49 -0
  106. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/auth.schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emailVerificationResponseSchema = exports.logoutResponseSchema = exports.passwordResetResponseSchema = exports.refreshTokenResponseSchema = exports.googleAuthInitiateResponseSchema = exports.authResponseSchema = exports.refreshTokenResourceSchema = exports.googleAuthInitiateResourceSchema = exports.authSessionResourceSchema = exports.authUserResourceSchema = exports.refreshTokenResponseAttributesSchema = exports.googleAuthInitiateResponseAttributesSchema = exports.authSessionAttributesSchema = exports.authUserAttributesSchema = exports.logoutSchema = exports.resendVerificationSchema = exports.verifyEmailSchema = exports.changePasswordSchema = exports.resetPasswordSchema = exports.requestPasswordResetSchema = exports.refreshTokenSchema = exports.googleAuthCallbackSchema = exports.googleAuthInitiateSchema = exports.signupSchema = exports.loginSchema = exports.logoutAttributesSchema = exports.resendVerificationAttributesSchema = exports.verifyEmailAttributesSchema = exports.changePasswordAttributesSchema = exports.resetPasswordAttributesSchema = exports.requestPasswordResetAttributesSchema = exports.refreshTokenAttributesSchema = exports.googleAuthCallbackAttributesSchema = exports.googleAuthInitiateAttributesSchema = exports.signupAttributesSchema = exports.loginAttributesSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_schemas_1 = require("./common.schemas");
6
+ /**
7
+ * Authentication schemas - JSON:API compliant
8
+ */
9
+ // Login attributes
10
+ exports.loginAttributesSchema = zod_1.z.object({
11
+ email: zod_1.z.string().email(),
12
+ password: zod_1.z.string().min(8),
13
+ });
14
+ // Signup attributes
15
+ exports.signupAttributesSchema = zod_1.z.object({
16
+ name: zod_1.z.string().min(1).max(200),
17
+ email: zod_1.z.string().email(),
18
+ password: zod_1.z.string().min(8).regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
19
+ .regex(/[a-z]/, 'Password must contain at least one lowercase letter')
20
+ .regex(/[0-9]/, 'Password must contain at least one number'),
21
+ });
22
+ // Google OAuth initiate attributes
23
+ exports.googleAuthInitiateAttributesSchema = zod_1.z.object({
24
+ redirectUri: zod_1.z.string().url().optional(),
25
+ });
26
+ // Google OAuth callback attributes
27
+ exports.googleAuthCallbackAttributesSchema = zod_1.z.object({
28
+ code: zod_1.z.string().min(1),
29
+ state: zod_1.z.string().optional(),
30
+ });
31
+ // Token refresh attributes
32
+ exports.refreshTokenAttributesSchema = zod_1.z.object({
33
+ refreshToken: zod_1.z.string().min(1),
34
+ });
35
+ // Password reset request attributes
36
+ exports.requestPasswordResetAttributesSchema = zod_1.z.object({
37
+ email: zod_1.z.string().email(),
38
+ });
39
+ // Password reset attributes
40
+ exports.resetPasswordAttributesSchema = zod_1.z.object({
41
+ token: zod_1.z.string().min(1),
42
+ newPassword: zod_1.z.string().min(8).regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
43
+ .regex(/[a-z]/, 'Password must contain at least one lowercase letter')
44
+ .regex(/[0-9]/, 'Password must contain at least one number'),
45
+ });
46
+ // Change password attributes
47
+ exports.changePasswordAttributesSchema = zod_1.z.object({
48
+ currentPassword: zod_1.z.string().min(1),
49
+ newPassword: zod_1.z.string().min(8).regex(/[A-Z]/, 'Password must contain at least one uppercase letter')
50
+ .regex(/[a-z]/, 'Password must contain at least one lowercase letter')
51
+ .regex(/[0-9]/, 'Password must contain at least one number'),
52
+ });
53
+ // Verify email attributes
54
+ exports.verifyEmailAttributesSchema = zod_1.z.object({
55
+ token: zod_1.z.string().min(1),
56
+ });
57
+ // Resend verification attributes
58
+ exports.resendVerificationAttributesSchema = zod_1.z.object({
59
+ email: zod_1.z.string().email(),
60
+ });
61
+ // Logout attributes
62
+ exports.logoutAttributesSchema = zod_1.z.object({
63
+ refreshToken: zod_1.z.string().optional(),
64
+ });
65
+ // JSON:API input schemas
66
+ exports.loginSchema = zod_1.z.object({
67
+ type: zod_1.z.literal('auth'),
68
+ attributes: exports.loginAttributesSchema,
69
+ });
70
+ exports.signupSchema = zod_1.z.object({
71
+ type: zod_1.z.literal('users'),
72
+ attributes: exports.signupAttributesSchema,
73
+ });
74
+ exports.googleAuthInitiateSchema = zod_1.z.object({
75
+ type: zod_1.z.literal('auth'),
76
+ attributes: exports.googleAuthInitiateAttributesSchema,
77
+ });
78
+ exports.googleAuthCallbackSchema = zod_1.z.object({
79
+ type: zod_1.z.literal('auth'),
80
+ attributes: exports.googleAuthCallbackAttributesSchema,
81
+ });
82
+ exports.refreshTokenSchema = zod_1.z.object({
83
+ type: zod_1.z.literal('auth'),
84
+ attributes: exports.refreshTokenAttributesSchema,
85
+ });
86
+ exports.requestPasswordResetSchema = zod_1.z.object({
87
+ type: zod_1.z.literal('auth'),
88
+ attributes: exports.requestPasswordResetAttributesSchema,
89
+ });
90
+ exports.resetPasswordSchema = zod_1.z.object({
91
+ type: zod_1.z.literal('auth'),
92
+ attributes: exports.resetPasswordAttributesSchema,
93
+ });
94
+ exports.changePasswordSchema = zod_1.z.object({
95
+ type: zod_1.z.literal('auth'),
96
+ attributes: exports.changePasswordAttributesSchema,
97
+ });
98
+ exports.verifyEmailSchema = zod_1.z.object({
99
+ type: zod_1.z.literal('auth'),
100
+ attributes: exports.verifyEmailAttributesSchema,
101
+ });
102
+ exports.resendVerificationSchema = zod_1.z.object({
103
+ type: zod_1.z.literal('auth'),
104
+ attributes: exports.resendVerificationAttributesSchema,
105
+ });
106
+ exports.logoutSchema = zod_1.z.object({
107
+ type: zod_1.z.literal('auth'),
108
+ attributes: exports.logoutAttributesSchema,
109
+ });
110
+ // User attributes schema (for auth responses)
111
+ exports.authUserAttributesSchema = zod_1.z.object({
112
+ name: zod_1.z.string(),
113
+ email: zod_1.z.string().email(),
114
+ phone: zod_1.z.string().nullable(),
115
+ emailVerified: zod_1.z.boolean(),
116
+ avatar: zod_1.z.string().url().nullable(),
117
+ }).merge(common_schemas_1.timestampsSchema);
118
+ // Auth session attributes schema
119
+ exports.authSessionAttributesSchema = zod_1.z.object({
120
+ accessToken: zod_1.z.string(),
121
+ refreshToken: zod_1.z.string(),
122
+ expiresIn: zod_1.z.number(), // seconds
123
+ tokenType: zod_1.z.literal('Bearer').default('Bearer'),
124
+ });
125
+ // Google OAuth initiate response attributes
126
+ exports.googleAuthInitiateResponseAttributesSchema = zod_1.z.object({
127
+ authUrl: zod_1.z.string().url(),
128
+ state: zod_1.z.string(),
129
+ });
130
+ // Token refresh response attributes
131
+ exports.refreshTokenResponseAttributesSchema = zod_1.z.object({
132
+ accessToken: zod_1.z.string(),
133
+ refreshToken: zod_1.z.string().optional(),
134
+ expiresIn: zod_1.z.number(),
135
+ tokenType: zod_1.z.literal('Bearer').default('Bearer'),
136
+ });
137
+ // User resource (JSON:API)
138
+ exports.authUserResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('users', exports.authUserAttributesSchema);
139
+ // Auth session resource (JSON:API)
140
+ exports.authSessionResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('sessions', exports.authSessionAttributesSchema);
141
+ // Google OAuth initiate resource
142
+ exports.googleAuthInitiateResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('auth-urls', exports.googleAuthInitiateResponseAttributesSchema);
143
+ // Token refresh resource
144
+ exports.refreshTokenResourceSchema = (0, common_schemas_1.createJsonApiResourceSchema)('sessions', exports.refreshTokenResponseAttributesSchema);
145
+ // Auth response (login/signup) - compound document with user and session
146
+ exports.authResponseSchema = zod_1.z.object({
147
+ data: zod_1.z.array(zod_1.z.union([exports.authUserResourceSchema, exports.authSessionResourceSchema])),
148
+ meta: zod_1.z.object({
149
+ message: zod_1.z.string().optional(),
150
+ }).optional(),
151
+ });
152
+ // Google OAuth initiate response
153
+ exports.googleAuthInitiateResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.googleAuthInitiateResourceSchema);
154
+ // Token refresh response
155
+ exports.refreshTokenResponseSchema = (0, common_schemas_1.jsonApiSingleResponseSchema)(exports.refreshTokenResourceSchema);
156
+ // Simple success responses
157
+ exports.passwordResetResponseSchema = common_schemas_1.jsonApiSuccessResponseSchema;
158
+ exports.logoutResponseSchema = common_schemas_1.jsonApiSuccessResponseSchema;
159
+ exports.emailVerificationResponseSchema = common_schemas_1.jsonApiSuccessResponseSchema;
@@ -0,0 +1,471 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Category schemas - JSON:API compliant
4
+ */
5
+ export declare const categoryTypeSchema: z.ZodEnum<["task", "budget", "expense"]>;
6
+ export declare const categoryAttributesSchema: z.ZodObject<{
7
+ name: z.ZodString;
8
+ type: z.ZodEnum<["task", "budget", "expense"]>;
9
+ farmId: z.ZodNullable<z.ZodString>;
10
+ isDefault: z.ZodBoolean;
11
+ } & {
12
+ createdAt: z.ZodString;
13
+ updatedAt: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ type: "expense" | "task" | "budget";
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ name: string;
19
+ farmId: string | null;
20
+ isDefault: boolean;
21
+ }, {
22
+ type: "expense" | "task" | "budget";
23
+ createdAt: string;
24
+ updatedAt: string;
25
+ name: string;
26
+ farmId: string | null;
27
+ isDefault: boolean;
28
+ }>;
29
+ export declare const createCategoryAttributesSchema: z.ZodObject<{
30
+ name: z.ZodString;
31
+ type: z.ZodEnum<["task", "budget", "expense"]>;
32
+ farmId: z.ZodOptional<z.ZodString>;
33
+ isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ type: "expense" | "task" | "budget";
36
+ name: string;
37
+ isDefault: boolean;
38
+ farmId?: string | undefined;
39
+ }, {
40
+ type: "expense" | "task" | "budget";
41
+ name: string;
42
+ farmId?: string | undefined;
43
+ isDefault?: boolean | undefined;
44
+ }>;
45
+ export declare const updateCategoryAttributesSchema: z.ZodObject<{
46
+ name: z.ZodOptional<z.ZodString>;
47
+ isDefault: z.ZodOptional<z.ZodBoolean>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ name?: string | undefined;
50
+ isDefault?: boolean | undefined;
51
+ }, {
52
+ name?: string | undefined;
53
+ isDefault?: boolean | undefined;
54
+ }>;
55
+ export declare const createCategorySchema: z.ZodObject<{
56
+ type: z.ZodLiteral<"categories">;
57
+ attributes: z.ZodObject<{
58
+ name: z.ZodString;
59
+ type: z.ZodEnum<["task", "budget", "expense"]>;
60
+ farmId: z.ZodOptional<z.ZodString>;
61
+ isDefault: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ type: "expense" | "task" | "budget";
64
+ name: string;
65
+ isDefault: boolean;
66
+ farmId?: string | undefined;
67
+ }, {
68
+ type: "expense" | "task" | "budget";
69
+ name: string;
70
+ farmId?: string | undefined;
71
+ isDefault?: boolean | undefined;
72
+ }>;
73
+ }, "strip", z.ZodTypeAny, {
74
+ type: "categories";
75
+ attributes: {
76
+ type: "expense" | "task" | "budget";
77
+ name: string;
78
+ isDefault: boolean;
79
+ farmId?: string | undefined;
80
+ };
81
+ }, {
82
+ type: "categories";
83
+ attributes: {
84
+ type: "expense" | "task" | "budget";
85
+ name: string;
86
+ farmId?: string | undefined;
87
+ isDefault?: boolean | undefined;
88
+ };
89
+ }>;
90
+ export declare const updateCategorySchema: z.ZodObject<{
91
+ type: z.ZodLiteral<"categories">;
92
+ id: z.ZodString;
93
+ attributes: z.ZodObject<{
94
+ name: z.ZodOptional<z.ZodString>;
95
+ isDefault: z.ZodOptional<z.ZodBoolean>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ name?: string | undefined;
98
+ isDefault?: boolean | undefined;
99
+ }, {
100
+ name?: string | undefined;
101
+ isDefault?: boolean | undefined;
102
+ }>;
103
+ }, "strip", z.ZodTypeAny, {
104
+ type: "categories";
105
+ id: string;
106
+ attributes: {
107
+ name?: string | undefined;
108
+ isDefault?: boolean | undefined;
109
+ };
110
+ }, {
111
+ type: "categories";
112
+ id: string;
113
+ attributes: {
114
+ name?: string | undefined;
115
+ isDefault?: boolean | undefined;
116
+ };
117
+ }>;
118
+ export declare const categoryResourceSchema: z.ZodObject<{
119
+ type: z.ZodLiteral<string>;
120
+ id: z.ZodString;
121
+ attributes: z.ZodObject<{
122
+ name: z.ZodString;
123
+ type: z.ZodEnum<["task", "budget", "expense"]>;
124
+ farmId: z.ZodNullable<z.ZodString>;
125
+ isDefault: z.ZodBoolean;
126
+ } & {
127
+ createdAt: z.ZodString;
128
+ updatedAt: z.ZodString;
129
+ }, "strip", z.ZodTypeAny, {
130
+ type: "expense" | "task" | "budget";
131
+ createdAt: string;
132
+ updatedAt: string;
133
+ name: string;
134
+ farmId: string | null;
135
+ isDefault: boolean;
136
+ }, {
137
+ type: "expense" | "task" | "budget";
138
+ createdAt: string;
139
+ updatedAt: string;
140
+ name: string;
141
+ farmId: string | null;
142
+ isDefault: boolean;
143
+ }>;
144
+ relationships: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
145
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
146
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ type: string;
149
+ id: string;
150
+ attributes: {
151
+ type: "expense" | "task" | "budget";
152
+ createdAt: string;
153
+ updatedAt: string;
154
+ name: string;
155
+ farmId: string | null;
156
+ isDefault: boolean;
157
+ };
158
+ relationships?: Record<string, unknown> | undefined;
159
+ links?: Record<string, string> | undefined;
160
+ meta?: Record<string, unknown> | undefined;
161
+ }, {
162
+ type: string;
163
+ id: string;
164
+ attributes: {
165
+ type: "expense" | "task" | "budget";
166
+ createdAt: string;
167
+ updatedAt: string;
168
+ name: string;
169
+ farmId: string | null;
170
+ isDefault: boolean;
171
+ };
172
+ relationships?: Record<string, unknown> | undefined;
173
+ links?: Record<string, string> | undefined;
174
+ meta?: Record<string, unknown> | undefined;
175
+ }>;
176
+ export declare const categoryResponseSchema: z.ZodObject<{
177
+ data: z.ZodObject<{
178
+ type: z.ZodLiteral<string>;
179
+ id: z.ZodString;
180
+ attributes: z.ZodObject<{
181
+ name: z.ZodString;
182
+ type: z.ZodEnum<["task", "budget", "expense"]>;
183
+ farmId: z.ZodNullable<z.ZodString>;
184
+ isDefault: z.ZodBoolean;
185
+ } & {
186
+ createdAt: z.ZodString;
187
+ updatedAt: z.ZodString;
188
+ }, "strip", z.ZodTypeAny, {
189
+ type: "expense" | "task" | "budget";
190
+ createdAt: string;
191
+ updatedAt: string;
192
+ name: string;
193
+ farmId: string | null;
194
+ isDefault: boolean;
195
+ }, {
196
+ type: "expense" | "task" | "budget";
197
+ createdAt: string;
198
+ updatedAt: string;
199
+ name: string;
200
+ farmId: string | null;
201
+ isDefault: boolean;
202
+ }>;
203
+ relationships: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
204
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
205
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
206
+ }, "strip", z.ZodTypeAny, {
207
+ type: string;
208
+ id: string;
209
+ attributes: {
210
+ type: "expense" | "task" | "budget";
211
+ createdAt: string;
212
+ updatedAt: string;
213
+ name: string;
214
+ farmId: string | null;
215
+ isDefault: boolean;
216
+ };
217
+ relationships?: Record<string, unknown> | undefined;
218
+ links?: Record<string, string> | undefined;
219
+ meta?: Record<string, unknown> | undefined;
220
+ }, {
221
+ type: string;
222
+ id: string;
223
+ attributes: {
224
+ type: "expense" | "task" | "budget";
225
+ createdAt: string;
226
+ updatedAt: string;
227
+ name: string;
228
+ farmId: string | null;
229
+ isDefault: boolean;
230
+ };
231
+ relationships?: Record<string, unknown> | undefined;
232
+ links?: Record<string, string> | undefined;
233
+ meta?: Record<string, unknown> | undefined;
234
+ }>;
235
+ included: z.ZodOptional<z.ZodArray<z.ZodObject<{
236
+ type: z.ZodString;
237
+ id: z.ZodString;
238
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
239
+ relationships: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
240
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
241
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ type: string;
244
+ id: string;
245
+ attributes?: Record<string, unknown> | undefined;
246
+ relationships?: Record<string, unknown> | undefined;
247
+ links?: Record<string, string> | undefined;
248
+ meta?: Record<string, unknown> | undefined;
249
+ }, {
250
+ type: string;
251
+ id: string;
252
+ attributes?: Record<string, unknown> | undefined;
253
+ relationships?: Record<string, unknown> | undefined;
254
+ links?: Record<string, string> | undefined;
255
+ meta?: Record<string, unknown> | undefined;
256
+ }>, "many">>;
257
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
258
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
259
+ }, "strip", z.ZodTypeAny, {
260
+ data: {
261
+ type: string;
262
+ id: string;
263
+ attributes: {
264
+ type: "expense" | "task" | "budget";
265
+ createdAt: string;
266
+ updatedAt: string;
267
+ name: string;
268
+ farmId: string | null;
269
+ isDefault: boolean;
270
+ };
271
+ relationships?: Record<string, unknown> | undefined;
272
+ links?: Record<string, string> | undefined;
273
+ meta?: Record<string, unknown> | undefined;
274
+ };
275
+ links?: Record<string, string> | undefined;
276
+ meta?: Record<string, unknown> | undefined;
277
+ included?: {
278
+ type: string;
279
+ id: string;
280
+ attributes?: Record<string, unknown> | undefined;
281
+ relationships?: Record<string, unknown> | undefined;
282
+ links?: Record<string, string> | undefined;
283
+ meta?: Record<string, unknown> | undefined;
284
+ }[] | undefined;
285
+ }, {
286
+ data: {
287
+ type: string;
288
+ id: string;
289
+ attributes: {
290
+ type: "expense" | "task" | "budget";
291
+ createdAt: string;
292
+ updatedAt: string;
293
+ name: string;
294
+ farmId: string | null;
295
+ isDefault: boolean;
296
+ };
297
+ relationships?: Record<string, unknown> | undefined;
298
+ links?: Record<string, string> | undefined;
299
+ meta?: Record<string, unknown> | undefined;
300
+ };
301
+ links?: Record<string, string> | undefined;
302
+ meta?: Record<string, unknown> | undefined;
303
+ included?: {
304
+ type: string;
305
+ id: string;
306
+ attributes?: Record<string, unknown> | undefined;
307
+ relationships?: Record<string, unknown> | undefined;
308
+ links?: Record<string, string> | undefined;
309
+ meta?: Record<string, unknown> | undefined;
310
+ }[] | undefined;
311
+ }>;
312
+ export declare const categoryListResponseSchema: z.ZodObject<{
313
+ data: z.ZodArray<z.ZodObject<{
314
+ type: z.ZodLiteral<string>;
315
+ id: z.ZodString;
316
+ attributes: z.ZodObject<{
317
+ name: z.ZodString;
318
+ type: z.ZodEnum<["task", "budget", "expense"]>;
319
+ farmId: z.ZodNullable<z.ZodString>;
320
+ isDefault: z.ZodBoolean;
321
+ } & {
322
+ createdAt: z.ZodString;
323
+ updatedAt: z.ZodString;
324
+ }, "strip", z.ZodTypeAny, {
325
+ type: "expense" | "task" | "budget";
326
+ createdAt: string;
327
+ updatedAt: string;
328
+ name: string;
329
+ farmId: string | null;
330
+ isDefault: boolean;
331
+ }, {
332
+ type: "expense" | "task" | "budget";
333
+ createdAt: string;
334
+ updatedAt: string;
335
+ name: string;
336
+ farmId: string | null;
337
+ isDefault: boolean;
338
+ }>;
339
+ relationships: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
340
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
341
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
342
+ }, "strip", z.ZodTypeAny, {
343
+ type: string;
344
+ id: string;
345
+ attributes: {
346
+ type: "expense" | "task" | "budget";
347
+ createdAt: string;
348
+ updatedAt: string;
349
+ name: string;
350
+ farmId: string | null;
351
+ isDefault: boolean;
352
+ };
353
+ relationships?: Record<string, unknown> | undefined;
354
+ links?: Record<string, string> | undefined;
355
+ meta?: Record<string, unknown> | undefined;
356
+ }, {
357
+ type: string;
358
+ id: string;
359
+ attributes: {
360
+ type: "expense" | "task" | "budget";
361
+ createdAt: string;
362
+ updatedAt: string;
363
+ name: string;
364
+ farmId: string | null;
365
+ isDefault: boolean;
366
+ };
367
+ relationships?: Record<string, unknown> | undefined;
368
+ links?: Record<string, string> | undefined;
369
+ meta?: Record<string, unknown> | undefined;
370
+ }>, "many">;
371
+ included: z.ZodOptional<z.ZodArray<z.ZodObject<{
372
+ type: z.ZodString;
373
+ id: z.ZodString;
374
+ attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
375
+ relationships: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
376
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
377
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
378
+ }, "strip", z.ZodTypeAny, {
379
+ type: string;
380
+ id: string;
381
+ attributes?: Record<string, unknown> | undefined;
382
+ relationships?: Record<string, unknown> | undefined;
383
+ links?: Record<string, string> | undefined;
384
+ meta?: Record<string, unknown> | undefined;
385
+ }, {
386
+ type: string;
387
+ id: string;
388
+ attributes?: Record<string, unknown> | undefined;
389
+ relationships?: Record<string, unknown> | undefined;
390
+ links?: Record<string, string> | undefined;
391
+ meta?: Record<string, unknown> | undefined;
392
+ }>, "many">>;
393
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
394
+ links: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
395
+ }, "strip", z.ZodTypeAny, {
396
+ data: {
397
+ type: string;
398
+ id: string;
399
+ attributes: {
400
+ type: "expense" | "task" | "budget";
401
+ createdAt: string;
402
+ updatedAt: string;
403
+ name: string;
404
+ farmId: string | null;
405
+ isDefault: boolean;
406
+ };
407
+ relationships?: Record<string, unknown> | undefined;
408
+ links?: Record<string, string> | undefined;
409
+ meta?: Record<string, unknown> | undefined;
410
+ }[];
411
+ links?: Record<string, string> | undefined;
412
+ meta?: Record<string, unknown> | undefined;
413
+ included?: {
414
+ type: string;
415
+ id: string;
416
+ attributes?: Record<string, unknown> | undefined;
417
+ relationships?: Record<string, unknown> | undefined;
418
+ links?: Record<string, string> | undefined;
419
+ meta?: Record<string, unknown> | undefined;
420
+ }[] | undefined;
421
+ }, {
422
+ data: {
423
+ type: string;
424
+ id: string;
425
+ attributes: {
426
+ type: "expense" | "task" | "budget";
427
+ createdAt: string;
428
+ updatedAt: string;
429
+ name: string;
430
+ farmId: string | null;
431
+ isDefault: boolean;
432
+ };
433
+ relationships?: Record<string, unknown> | undefined;
434
+ links?: Record<string, string> | undefined;
435
+ meta?: Record<string, unknown> | undefined;
436
+ }[];
437
+ links?: Record<string, string> | undefined;
438
+ meta?: Record<string, unknown> | undefined;
439
+ included?: {
440
+ type: string;
441
+ id: string;
442
+ attributes?: Record<string, unknown> | undefined;
443
+ relationships?: Record<string, unknown> | undefined;
444
+ links?: Record<string, string> | undefined;
445
+ meta?: Record<string, unknown> | undefined;
446
+ }[] | undefined;
447
+ }>;
448
+ export declare const getCategoriesQuerySchema: z.ZodObject<{
449
+ type: z.ZodOptional<z.ZodEnum<["task", "budget", "expense"]>>;
450
+ farmId: z.ZodOptional<z.ZodString>;
451
+ includeDefaults: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
452
+ }, "strip", z.ZodTypeAny, {
453
+ includeDefaults: boolean;
454
+ type?: "expense" | "task" | "budget" | undefined;
455
+ farmId?: string | undefined;
456
+ }, {
457
+ type?: "expense" | "task" | "budget" | undefined;
458
+ farmId?: string | undefined;
459
+ includeDefaults?: boolean | undefined;
460
+ }>;
461
+ export type CategoryType = z.infer<typeof categoryTypeSchema>;
462
+ export type CreateCategoryAttributes = z.infer<typeof createCategoryAttributesSchema>;
463
+ export type UpdateCategoryAttributes = z.infer<typeof updateCategoryAttributesSchema>;
464
+ export type CreateCategoryInput = z.infer<typeof createCategorySchema>;
465
+ export type UpdateCategoryInput = z.infer<typeof updateCategorySchema>;
466
+ export type CategoryAttributes = z.infer<typeof categoryAttributesSchema>;
467
+ export type CategoryResource = z.infer<typeof categoryResourceSchema>;
468
+ export type CategoryResponse = z.infer<typeof categoryResponseSchema>;
469
+ export type CategoryListResponse = z.infer<typeof categoryListResponseSchema>;
470
+ export type GetCategoriesQuery = z.infer<typeof getCategoriesQuerySchema>;
471
+ //# sourceMappingURL=categories.schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.schemas.d.ts","sourceRoot":"","sources":["../../src/schemas/categories.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;GAEG;AAGH,eAAO,MAAM,kBAAkB,0CAAwC,CAAC;AAGxE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;EAKX,CAAC;AAG3B,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;EAKzC,CAAC;AAGH,eAAO,MAAM,8BAA8B;;;;;;;;;EAGzC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG/B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI/B,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsE,CAAC;AAG1G,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsD,CAAC;AAC1F,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA0D,CAAC;AAGlG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AAGH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}