telegram-jobs-contract 1.0.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.
Files changed (47) hide show
  1. package/README.md +73 -0
  2. package/dist/contracts/bundles.contract.d.ts +183 -0
  3. package/dist/contracts/bundles.contract.d.ts.map +1 -0
  4. package/dist/contracts/bundles.contract.js +29 -0
  5. package/dist/contracts/channels.contract.d.ts +947 -0
  6. package/dist/contracts/channels.contract.d.ts.map +1 -0
  7. package/dist/contracts/channels.contract.js +114 -0
  8. package/dist/contracts/jobs.contract.d.ts +939 -0
  9. package/dist/contracts/jobs.contract.d.ts.map +1 -0
  10. package/dist/contracts/jobs.contract.js +69 -0
  11. package/dist/contracts/notifications.contract.d.ts +725 -0
  12. package/dist/contracts/notifications.contract.d.ts.map +1 -0
  13. package/dist/contracts/notifications.contract.js +65 -0
  14. package/dist/contracts/resume.contract.d.ts +87 -0
  15. package/dist/contracts/resume.contract.d.ts.map +1 -0
  16. package/dist/contracts/resume.contract.js +26 -0
  17. package/dist/contracts/sniper.contract.d.ts +108 -0
  18. package/dist/contracts/sniper.contract.d.ts.map +1 -0
  19. package/dist/contracts/sniper.contract.js +27 -0
  20. package/dist/contracts/stats.contract.d.ts +148 -0
  21. package/dist/contracts/stats.contract.d.ts.map +1 -0
  22. package/dist/contracts/stats.contract.js +41 -0
  23. package/dist/contracts/user.contract.d.ts +362 -0
  24. package/dist/contracts/user.contract.d.ts.map +1 -0
  25. package/dist/contracts/user.contract.js +31 -0
  26. package/dist/index.d.ts +3504 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +58 -0
  29. package/dist/schemas/bundles.d.ts +33 -0
  30. package/dist/schemas/bundles.d.ts.map +1 -0
  31. package/dist/schemas/bundles.js +15 -0
  32. package/dist/schemas/channels.d.ts +134 -0
  33. package/dist/schemas/channels.d.ts.map +1 -0
  34. package/dist/schemas/channels.js +25 -0
  35. package/dist/schemas/common.d.ts +12 -0
  36. package/dist/schemas/common.d.ts.map +1 -0
  37. package/dist/schemas/common.js +8 -0
  38. package/dist/schemas/errors.d.ts +29 -0
  39. package/dist/schemas/errors.d.ts.map +1 -0
  40. package/dist/schemas/errors.js +17 -0
  41. package/dist/schemas/jobs.d.ts +563 -0
  42. package/dist/schemas/jobs.d.ts.map +1 -0
  43. package/dist/schemas/jobs.js +64 -0
  44. package/dist/schemas/user.d.ts +262 -0
  45. package/dist/schemas/user.d.ts.map +1 -0
  46. package/dist/schemas/user.js +36 -0
  47. package/package.json +40 -0
@@ -0,0 +1,939 @@
1
+ import { z } from 'zod';
2
+ export declare const jobsContract: {
3
+ searchJobs: {
4
+ summary: "Search jobs with filters and pagination";
5
+ method: "POST";
6
+ body: z.ZodObject<{
7
+ filters: z.ZodObject<{
8
+ stack: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
+ level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ jobFunction: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ locationType: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ excludedTitles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
+ muteKeywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
+ experienceYears: z.ZodOptional<z.ZodObject<{
15
+ min: z.ZodOptional<z.ZodNumber>;
16
+ max: z.ZodOptional<z.ZodNumber>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ min?: number | undefined;
19
+ max?: number | undefined;
20
+ }, {
21
+ min?: number | undefined;
22
+ max?: number | undefined;
23
+ }>>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ level?: string[] | undefined;
26
+ experienceYears?: {
27
+ min?: number | undefined;
28
+ max?: number | undefined;
29
+ } | undefined;
30
+ stack?: string[] | undefined;
31
+ jobFunction?: string[] | undefined;
32
+ locationType?: string[] | undefined;
33
+ excludedTitles?: string[] | undefined;
34
+ muteKeywords?: string[] | undefined;
35
+ }, {
36
+ level?: string[] | undefined;
37
+ experienceYears?: {
38
+ min?: number | undefined;
39
+ max?: number | undefined;
40
+ } | undefined;
41
+ stack?: string[] | undefined;
42
+ jobFunction?: string[] | undefined;
43
+ locationType?: string[] | undefined;
44
+ excludedTitles?: string[] | undefined;
45
+ muteKeywords?: string[] | undefined;
46
+ }>;
47
+ pagination: z.ZodObject<{
48
+ limit: z.ZodOptional<z.ZodNumber>;
49
+ offset: z.ZodOptional<z.ZodNumber>;
50
+ }, "strip", z.ZodTypeAny, {
51
+ limit?: number | undefined;
52
+ offset?: number | undefined;
53
+ }, {
54
+ limit?: number | undefined;
55
+ offset?: number | undefined;
56
+ }>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ filters: {
59
+ level?: string[] | undefined;
60
+ experienceYears?: {
61
+ min?: number | undefined;
62
+ max?: number | undefined;
63
+ } | undefined;
64
+ stack?: string[] | undefined;
65
+ jobFunction?: string[] | undefined;
66
+ locationType?: string[] | undefined;
67
+ excludedTitles?: string[] | undefined;
68
+ muteKeywords?: string[] | undefined;
69
+ };
70
+ pagination: {
71
+ limit?: number | undefined;
72
+ offset?: number | undefined;
73
+ };
74
+ }, {
75
+ filters: {
76
+ level?: string[] | undefined;
77
+ experienceYears?: {
78
+ min?: number | undefined;
79
+ max?: number | undefined;
80
+ } | undefined;
81
+ stack?: string[] | undefined;
82
+ jobFunction?: string[] | undefined;
83
+ locationType?: string[] | undefined;
84
+ excludedTitles?: string[] | undefined;
85
+ muteKeywords?: string[] | undefined;
86
+ };
87
+ pagination: {
88
+ limit?: number | undefined;
89
+ offset?: number | undefined;
90
+ };
91
+ }>;
92
+ path: "/api/jobs/search";
93
+ responses: {
94
+ 200: z.ZodObject<{
95
+ success: z.ZodLiteral<true>;
96
+ message: z.ZodString;
97
+ data: z.ZodObject<{
98
+ jobs: z.ZodArray<z.ZodObject<{
99
+ id: z.ZodString;
100
+ telegramMessageId: z.ZodString;
101
+ channelId: z.ZodString;
102
+ channelUsername: z.ZodOptional<z.ZodString>;
103
+ senderUserId: z.ZodOptional<z.ZodString>;
104
+ senderUsername: z.ZodOptional<z.ZodString>;
105
+ rawText: z.ZodString;
106
+ parsedData: z.ZodOptional<z.ZodObject<{
107
+ jobTitle: z.ZodOptional<z.ZodString>;
108
+ normalizedJobTitle: z.ZodOptional<z.ZodString>;
109
+ company: z.ZodOptional<z.ZodString>;
110
+ techStack: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
111
+ salary: z.ZodOptional<z.ZodString>;
112
+ contactInfo: z.ZodOptional<z.ZodObject<{
113
+ telegram: z.ZodOptional<z.ZodString>;
114
+ email: z.ZodOptional<z.ZodString>;
115
+ applicationUrl: z.ZodOptional<z.ZodString>;
116
+ other: z.ZodOptional<z.ZodString>;
117
+ }, "strip", z.ZodTypeAny, {
118
+ telegram?: string | undefined;
119
+ email?: string | undefined;
120
+ applicationUrl?: string | undefined;
121
+ other?: string | undefined;
122
+ }, {
123
+ telegram?: string | undefined;
124
+ email?: string | undefined;
125
+ applicationUrl?: string | undefined;
126
+ other?: string | undefined;
127
+ }>>;
128
+ isRemote: z.ZodOptional<z.ZodBoolean>;
129
+ level: z.ZodOptional<z.ZodString>;
130
+ employmentType: z.ZodOptional<z.ZodString>;
131
+ location: z.ZodOptional<z.ZodString>;
132
+ candidateLocation: z.ZodOptional<z.ZodString>;
133
+ responsibilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
134
+ requiredQualifications: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
135
+ preferredQualifications: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
136
+ benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
137
+ description: z.ZodOptional<z.ZodString>;
138
+ experienceYears: z.ZodOptional<z.ZodNumber>;
139
+ }, "strip", z.ZodTypeAny, {
140
+ jobTitle?: string | undefined;
141
+ normalizedJobTitle?: string | undefined;
142
+ company?: string | undefined;
143
+ techStack?: string[] | undefined;
144
+ salary?: string | undefined;
145
+ contactInfo?: {
146
+ telegram?: string | undefined;
147
+ email?: string | undefined;
148
+ applicationUrl?: string | undefined;
149
+ other?: string | undefined;
150
+ } | undefined;
151
+ isRemote?: boolean | undefined;
152
+ level?: string | undefined;
153
+ employmentType?: string | undefined;
154
+ location?: string | undefined;
155
+ candidateLocation?: string | undefined;
156
+ responsibilities?: string[] | undefined;
157
+ requiredQualifications?: string[] | undefined;
158
+ preferredQualifications?: string[] | undefined;
159
+ benefits?: string[] | undefined;
160
+ description?: string | undefined;
161
+ experienceYears?: number | undefined;
162
+ }, {
163
+ jobTitle?: string | undefined;
164
+ normalizedJobTitle?: string | undefined;
165
+ company?: string | undefined;
166
+ techStack?: string[] | undefined;
167
+ salary?: string | undefined;
168
+ contactInfo?: {
169
+ telegram?: string | undefined;
170
+ email?: string | undefined;
171
+ applicationUrl?: string | undefined;
172
+ other?: string | undefined;
173
+ } | undefined;
174
+ isRemote?: boolean | undefined;
175
+ level?: string | undefined;
176
+ employmentType?: string | undefined;
177
+ location?: string | undefined;
178
+ candidateLocation?: string | undefined;
179
+ responsibilities?: string[] | undefined;
180
+ requiredQualifications?: string[] | undefined;
181
+ preferredQualifications?: string[] | undefined;
182
+ benefits?: string[] | undefined;
183
+ description?: string | undefined;
184
+ experienceYears?: number | undefined;
185
+ }>>;
186
+ status: z.ZodOptional<z.ZodEnum<["pending_parse", "parsed", "failed"]>>;
187
+ telegramMessageDate: z.ZodOptional<z.ZodString>;
188
+ createdAt: z.ZodString;
189
+ updatedAt: z.ZodOptional<z.ZodString>;
190
+ isVisited: z.ZodOptional<z.ZodBoolean>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ id: string;
193
+ telegramMessageId: string;
194
+ channelId: string;
195
+ rawText: string;
196
+ createdAt: string;
197
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
198
+ channelUsername?: string | undefined;
199
+ senderUserId?: string | undefined;
200
+ senderUsername?: string | undefined;
201
+ parsedData?: {
202
+ jobTitle?: string | undefined;
203
+ normalizedJobTitle?: string | undefined;
204
+ company?: string | undefined;
205
+ techStack?: string[] | undefined;
206
+ salary?: string | undefined;
207
+ contactInfo?: {
208
+ telegram?: string | undefined;
209
+ email?: string | undefined;
210
+ applicationUrl?: string | undefined;
211
+ other?: string | undefined;
212
+ } | undefined;
213
+ isRemote?: boolean | undefined;
214
+ level?: string | undefined;
215
+ employmentType?: string | undefined;
216
+ location?: string | undefined;
217
+ candidateLocation?: string | undefined;
218
+ responsibilities?: string[] | undefined;
219
+ requiredQualifications?: string[] | undefined;
220
+ preferredQualifications?: string[] | undefined;
221
+ benefits?: string[] | undefined;
222
+ description?: string | undefined;
223
+ experienceYears?: number | undefined;
224
+ } | undefined;
225
+ telegramMessageDate?: string | undefined;
226
+ updatedAt?: string | undefined;
227
+ isVisited?: boolean | undefined;
228
+ }, {
229
+ id: string;
230
+ telegramMessageId: string;
231
+ channelId: string;
232
+ rawText: string;
233
+ createdAt: string;
234
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
235
+ channelUsername?: string | undefined;
236
+ senderUserId?: string | undefined;
237
+ senderUsername?: string | undefined;
238
+ parsedData?: {
239
+ jobTitle?: string | undefined;
240
+ normalizedJobTitle?: string | undefined;
241
+ company?: string | undefined;
242
+ techStack?: string[] | undefined;
243
+ salary?: string | undefined;
244
+ contactInfo?: {
245
+ telegram?: string | undefined;
246
+ email?: string | undefined;
247
+ applicationUrl?: string | undefined;
248
+ other?: string | undefined;
249
+ } | undefined;
250
+ isRemote?: boolean | undefined;
251
+ level?: string | undefined;
252
+ employmentType?: string | undefined;
253
+ location?: string | undefined;
254
+ candidateLocation?: string | undefined;
255
+ responsibilities?: string[] | undefined;
256
+ requiredQualifications?: string[] | undefined;
257
+ preferredQualifications?: string[] | undefined;
258
+ benefits?: string[] | undefined;
259
+ description?: string | undefined;
260
+ experienceYears?: number | undefined;
261
+ } | undefined;
262
+ telegramMessageDate?: string | undefined;
263
+ updatedAt?: string | undefined;
264
+ isVisited?: boolean | undefined;
265
+ }>, "many">;
266
+ total: z.ZodNumber;
267
+ limit: z.ZodNumber;
268
+ offset: z.ZodNumber;
269
+ }, "strip", z.ZodTypeAny, {
270
+ jobs: {
271
+ id: string;
272
+ telegramMessageId: string;
273
+ channelId: string;
274
+ rawText: string;
275
+ createdAt: string;
276
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
277
+ channelUsername?: string | undefined;
278
+ senderUserId?: string | undefined;
279
+ senderUsername?: string | undefined;
280
+ parsedData?: {
281
+ jobTitle?: string | undefined;
282
+ normalizedJobTitle?: string | undefined;
283
+ company?: string | undefined;
284
+ techStack?: string[] | undefined;
285
+ salary?: string | undefined;
286
+ contactInfo?: {
287
+ telegram?: string | undefined;
288
+ email?: string | undefined;
289
+ applicationUrl?: string | undefined;
290
+ other?: string | undefined;
291
+ } | undefined;
292
+ isRemote?: boolean | undefined;
293
+ level?: string | undefined;
294
+ employmentType?: string | undefined;
295
+ location?: string | undefined;
296
+ candidateLocation?: string | undefined;
297
+ responsibilities?: string[] | undefined;
298
+ requiredQualifications?: string[] | undefined;
299
+ preferredQualifications?: string[] | undefined;
300
+ benefits?: string[] | undefined;
301
+ description?: string | undefined;
302
+ experienceYears?: number | undefined;
303
+ } | undefined;
304
+ telegramMessageDate?: string | undefined;
305
+ updatedAt?: string | undefined;
306
+ isVisited?: boolean | undefined;
307
+ }[];
308
+ total: number;
309
+ limit: number;
310
+ offset: number;
311
+ }, {
312
+ jobs: {
313
+ id: string;
314
+ telegramMessageId: string;
315
+ channelId: string;
316
+ rawText: string;
317
+ createdAt: string;
318
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
319
+ channelUsername?: string | undefined;
320
+ senderUserId?: string | undefined;
321
+ senderUsername?: string | undefined;
322
+ parsedData?: {
323
+ jobTitle?: string | undefined;
324
+ normalizedJobTitle?: string | undefined;
325
+ company?: string | undefined;
326
+ techStack?: string[] | undefined;
327
+ salary?: string | undefined;
328
+ contactInfo?: {
329
+ telegram?: string | undefined;
330
+ email?: string | undefined;
331
+ applicationUrl?: string | undefined;
332
+ other?: string | undefined;
333
+ } | undefined;
334
+ isRemote?: boolean | undefined;
335
+ level?: string | undefined;
336
+ employmentType?: string | undefined;
337
+ location?: string | undefined;
338
+ candidateLocation?: string | undefined;
339
+ responsibilities?: string[] | undefined;
340
+ requiredQualifications?: string[] | undefined;
341
+ preferredQualifications?: string[] | undefined;
342
+ benefits?: string[] | undefined;
343
+ description?: string | undefined;
344
+ experienceYears?: number | undefined;
345
+ } | undefined;
346
+ telegramMessageDate?: string | undefined;
347
+ updatedAt?: string | undefined;
348
+ isVisited?: boolean | undefined;
349
+ }[];
350
+ total: number;
351
+ limit: number;
352
+ offset: number;
353
+ }>;
354
+ }, "strip", z.ZodTypeAny, {
355
+ message: string;
356
+ success: true;
357
+ data: {
358
+ jobs: {
359
+ id: string;
360
+ telegramMessageId: string;
361
+ channelId: string;
362
+ rawText: string;
363
+ createdAt: string;
364
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
365
+ channelUsername?: string | undefined;
366
+ senderUserId?: string | undefined;
367
+ senderUsername?: string | undefined;
368
+ parsedData?: {
369
+ jobTitle?: string | undefined;
370
+ normalizedJobTitle?: string | undefined;
371
+ company?: string | undefined;
372
+ techStack?: string[] | undefined;
373
+ salary?: string | undefined;
374
+ contactInfo?: {
375
+ telegram?: string | undefined;
376
+ email?: string | undefined;
377
+ applicationUrl?: string | undefined;
378
+ other?: string | undefined;
379
+ } | undefined;
380
+ isRemote?: boolean | undefined;
381
+ level?: string | undefined;
382
+ employmentType?: string | undefined;
383
+ location?: string | undefined;
384
+ candidateLocation?: string | undefined;
385
+ responsibilities?: string[] | undefined;
386
+ requiredQualifications?: string[] | undefined;
387
+ preferredQualifications?: string[] | undefined;
388
+ benefits?: string[] | undefined;
389
+ description?: string | undefined;
390
+ experienceYears?: number | undefined;
391
+ } | undefined;
392
+ telegramMessageDate?: string | undefined;
393
+ updatedAt?: string | undefined;
394
+ isVisited?: boolean | undefined;
395
+ }[];
396
+ total: number;
397
+ limit: number;
398
+ offset: number;
399
+ };
400
+ }, {
401
+ message: string;
402
+ success: true;
403
+ data: {
404
+ jobs: {
405
+ id: string;
406
+ telegramMessageId: string;
407
+ channelId: string;
408
+ rawText: string;
409
+ createdAt: string;
410
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
411
+ channelUsername?: string | undefined;
412
+ senderUserId?: string | undefined;
413
+ senderUsername?: string | undefined;
414
+ parsedData?: {
415
+ jobTitle?: string | undefined;
416
+ normalizedJobTitle?: string | undefined;
417
+ company?: string | undefined;
418
+ techStack?: string[] | undefined;
419
+ salary?: string | undefined;
420
+ contactInfo?: {
421
+ telegram?: string | undefined;
422
+ email?: string | undefined;
423
+ applicationUrl?: string | undefined;
424
+ other?: string | undefined;
425
+ } | undefined;
426
+ isRemote?: boolean | undefined;
427
+ level?: string | undefined;
428
+ employmentType?: string | undefined;
429
+ location?: string | undefined;
430
+ candidateLocation?: string | undefined;
431
+ responsibilities?: string[] | undefined;
432
+ requiredQualifications?: string[] | undefined;
433
+ preferredQualifications?: string[] | undefined;
434
+ benefits?: string[] | undefined;
435
+ description?: string | undefined;
436
+ experienceYears?: number | undefined;
437
+ } | undefined;
438
+ telegramMessageDate?: string | undefined;
439
+ updatedAt?: string | undefined;
440
+ isVisited?: boolean | undefined;
441
+ }[];
442
+ total: number;
443
+ limit: number;
444
+ offset: number;
445
+ };
446
+ }>;
447
+ 401: z.ZodObject<{
448
+ success: z.ZodLiteral<false>;
449
+ message: z.ZodString;
450
+ errors: z.ZodOptional<z.ZodAny>;
451
+ }, "strip", z.ZodTypeAny, {
452
+ message: string;
453
+ success: false;
454
+ errors?: any;
455
+ }, {
456
+ message: string;
457
+ success: false;
458
+ errors?: any;
459
+ }>;
460
+ 400: z.ZodObject<{
461
+ success: z.ZodLiteral<false>;
462
+ message: z.ZodString;
463
+ errors: z.ZodOptional<z.ZodAny>;
464
+ }, "strip", z.ZodTypeAny, {
465
+ message: string;
466
+ success: false;
467
+ errors?: any;
468
+ }, {
469
+ message: string;
470
+ success: false;
471
+ errors?: any;
472
+ }>;
473
+ 500: z.ZodObject<{
474
+ success: z.ZodLiteral<false>;
475
+ message: z.ZodString;
476
+ errors: z.ZodOptional<z.ZodAny>;
477
+ }, "strip", z.ZodTypeAny, {
478
+ message: string;
479
+ success: false;
480
+ errors?: any;
481
+ }, {
482
+ message: string;
483
+ success: false;
484
+ errors?: any;
485
+ }>;
486
+ };
487
+ };
488
+ getJobById: {
489
+ summary: "Get job by ID";
490
+ method: "GET";
491
+ path: "/api/jobs/:id";
492
+ responses: {
493
+ 200: z.ZodObject<{
494
+ success: z.ZodLiteral<true>;
495
+ message: z.ZodString;
496
+ data: z.ZodObject<{
497
+ id: z.ZodString;
498
+ telegramMessageId: z.ZodString;
499
+ channelId: z.ZodString;
500
+ channelUsername: z.ZodOptional<z.ZodString>;
501
+ senderUserId: z.ZodOptional<z.ZodString>;
502
+ senderUsername: z.ZodOptional<z.ZodString>;
503
+ rawText: z.ZodString;
504
+ parsedData: z.ZodOptional<z.ZodObject<{
505
+ jobTitle: z.ZodOptional<z.ZodString>;
506
+ normalizedJobTitle: z.ZodOptional<z.ZodString>;
507
+ company: z.ZodOptional<z.ZodString>;
508
+ techStack: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
509
+ salary: z.ZodOptional<z.ZodString>;
510
+ contactInfo: z.ZodOptional<z.ZodObject<{
511
+ telegram: z.ZodOptional<z.ZodString>;
512
+ email: z.ZodOptional<z.ZodString>;
513
+ applicationUrl: z.ZodOptional<z.ZodString>;
514
+ other: z.ZodOptional<z.ZodString>;
515
+ }, "strip", z.ZodTypeAny, {
516
+ telegram?: string | undefined;
517
+ email?: string | undefined;
518
+ applicationUrl?: string | undefined;
519
+ other?: string | undefined;
520
+ }, {
521
+ telegram?: string | undefined;
522
+ email?: string | undefined;
523
+ applicationUrl?: string | undefined;
524
+ other?: string | undefined;
525
+ }>>;
526
+ isRemote: z.ZodOptional<z.ZodBoolean>;
527
+ level: z.ZodOptional<z.ZodString>;
528
+ employmentType: z.ZodOptional<z.ZodString>;
529
+ location: z.ZodOptional<z.ZodString>;
530
+ candidateLocation: z.ZodOptional<z.ZodString>;
531
+ responsibilities: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
532
+ requiredQualifications: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
533
+ preferredQualifications: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
534
+ benefits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
535
+ description: z.ZodOptional<z.ZodString>;
536
+ experienceYears: z.ZodOptional<z.ZodNumber>;
537
+ }, "strip", z.ZodTypeAny, {
538
+ jobTitle?: string | undefined;
539
+ normalizedJobTitle?: string | undefined;
540
+ company?: string | undefined;
541
+ techStack?: string[] | undefined;
542
+ salary?: string | undefined;
543
+ contactInfo?: {
544
+ telegram?: string | undefined;
545
+ email?: string | undefined;
546
+ applicationUrl?: string | undefined;
547
+ other?: string | undefined;
548
+ } | undefined;
549
+ isRemote?: boolean | undefined;
550
+ level?: string | undefined;
551
+ employmentType?: string | undefined;
552
+ location?: string | undefined;
553
+ candidateLocation?: string | undefined;
554
+ responsibilities?: string[] | undefined;
555
+ requiredQualifications?: string[] | undefined;
556
+ preferredQualifications?: string[] | undefined;
557
+ benefits?: string[] | undefined;
558
+ description?: string | undefined;
559
+ experienceYears?: number | undefined;
560
+ }, {
561
+ jobTitle?: string | undefined;
562
+ normalizedJobTitle?: string | undefined;
563
+ company?: string | undefined;
564
+ techStack?: string[] | undefined;
565
+ salary?: string | undefined;
566
+ contactInfo?: {
567
+ telegram?: string | undefined;
568
+ email?: string | undefined;
569
+ applicationUrl?: string | undefined;
570
+ other?: string | undefined;
571
+ } | undefined;
572
+ isRemote?: boolean | undefined;
573
+ level?: string | undefined;
574
+ employmentType?: string | undefined;
575
+ location?: string | undefined;
576
+ candidateLocation?: string | undefined;
577
+ responsibilities?: string[] | undefined;
578
+ requiredQualifications?: string[] | undefined;
579
+ preferredQualifications?: string[] | undefined;
580
+ benefits?: string[] | undefined;
581
+ description?: string | undefined;
582
+ experienceYears?: number | undefined;
583
+ }>>;
584
+ status: z.ZodOptional<z.ZodEnum<["pending_parse", "parsed", "failed"]>>;
585
+ telegramMessageDate: z.ZodOptional<z.ZodString>;
586
+ createdAt: z.ZodString;
587
+ updatedAt: z.ZodOptional<z.ZodString>;
588
+ isVisited: z.ZodOptional<z.ZodBoolean>;
589
+ }, "strip", z.ZodTypeAny, {
590
+ id: string;
591
+ telegramMessageId: string;
592
+ channelId: string;
593
+ rawText: string;
594
+ createdAt: string;
595
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
596
+ channelUsername?: string | undefined;
597
+ senderUserId?: string | undefined;
598
+ senderUsername?: string | undefined;
599
+ parsedData?: {
600
+ jobTitle?: string | undefined;
601
+ normalizedJobTitle?: string | undefined;
602
+ company?: string | undefined;
603
+ techStack?: string[] | undefined;
604
+ salary?: string | undefined;
605
+ contactInfo?: {
606
+ telegram?: string | undefined;
607
+ email?: string | undefined;
608
+ applicationUrl?: string | undefined;
609
+ other?: string | undefined;
610
+ } | undefined;
611
+ isRemote?: boolean | undefined;
612
+ level?: string | undefined;
613
+ employmentType?: string | undefined;
614
+ location?: string | undefined;
615
+ candidateLocation?: string | undefined;
616
+ responsibilities?: string[] | undefined;
617
+ requiredQualifications?: string[] | undefined;
618
+ preferredQualifications?: string[] | undefined;
619
+ benefits?: string[] | undefined;
620
+ description?: string | undefined;
621
+ experienceYears?: number | undefined;
622
+ } | undefined;
623
+ telegramMessageDate?: string | undefined;
624
+ updatedAt?: string | undefined;
625
+ isVisited?: boolean | undefined;
626
+ }, {
627
+ id: string;
628
+ telegramMessageId: string;
629
+ channelId: string;
630
+ rawText: string;
631
+ createdAt: string;
632
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
633
+ channelUsername?: string | undefined;
634
+ senderUserId?: string | undefined;
635
+ senderUsername?: string | undefined;
636
+ parsedData?: {
637
+ jobTitle?: string | undefined;
638
+ normalizedJobTitle?: string | undefined;
639
+ company?: string | undefined;
640
+ techStack?: string[] | undefined;
641
+ salary?: string | undefined;
642
+ contactInfo?: {
643
+ telegram?: string | undefined;
644
+ email?: string | undefined;
645
+ applicationUrl?: string | undefined;
646
+ other?: string | undefined;
647
+ } | undefined;
648
+ isRemote?: boolean | undefined;
649
+ level?: string | undefined;
650
+ employmentType?: string | undefined;
651
+ location?: string | undefined;
652
+ candidateLocation?: string | undefined;
653
+ responsibilities?: string[] | undefined;
654
+ requiredQualifications?: string[] | undefined;
655
+ preferredQualifications?: string[] | undefined;
656
+ benefits?: string[] | undefined;
657
+ description?: string | undefined;
658
+ experienceYears?: number | undefined;
659
+ } | undefined;
660
+ telegramMessageDate?: string | undefined;
661
+ updatedAt?: string | undefined;
662
+ isVisited?: boolean | undefined;
663
+ }>;
664
+ }, "strip", z.ZodTypeAny, {
665
+ message: string;
666
+ success: true;
667
+ data: {
668
+ id: string;
669
+ telegramMessageId: string;
670
+ channelId: string;
671
+ rawText: string;
672
+ createdAt: string;
673
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
674
+ channelUsername?: string | undefined;
675
+ senderUserId?: string | undefined;
676
+ senderUsername?: string | undefined;
677
+ parsedData?: {
678
+ jobTitle?: string | undefined;
679
+ normalizedJobTitle?: string | undefined;
680
+ company?: string | undefined;
681
+ techStack?: string[] | undefined;
682
+ salary?: string | undefined;
683
+ contactInfo?: {
684
+ telegram?: string | undefined;
685
+ email?: string | undefined;
686
+ applicationUrl?: string | undefined;
687
+ other?: string | undefined;
688
+ } | undefined;
689
+ isRemote?: boolean | undefined;
690
+ level?: string | undefined;
691
+ employmentType?: string | undefined;
692
+ location?: string | undefined;
693
+ candidateLocation?: string | undefined;
694
+ responsibilities?: string[] | undefined;
695
+ requiredQualifications?: string[] | undefined;
696
+ preferredQualifications?: string[] | undefined;
697
+ benefits?: string[] | undefined;
698
+ description?: string | undefined;
699
+ experienceYears?: number | undefined;
700
+ } | undefined;
701
+ telegramMessageDate?: string | undefined;
702
+ updatedAt?: string | undefined;
703
+ isVisited?: boolean | undefined;
704
+ };
705
+ }, {
706
+ message: string;
707
+ success: true;
708
+ data: {
709
+ id: string;
710
+ telegramMessageId: string;
711
+ channelId: string;
712
+ rawText: string;
713
+ createdAt: string;
714
+ status?: "pending_parse" | "parsed" | "failed" | undefined;
715
+ channelUsername?: string | undefined;
716
+ senderUserId?: string | undefined;
717
+ senderUsername?: string | undefined;
718
+ parsedData?: {
719
+ jobTitle?: string | undefined;
720
+ normalizedJobTitle?: string | undefined;
721
+ company?: string | undefined;
722
+ techStack?: string[] | undefined;
723
+ salary?: string | undefined;
724
+ contactInfo?: {
725
+ telegram?: string | undefined;
726
+ email?: string | undefined;
727
+ applicationUrl?: string | undefined;
728
+ other?: string | undefined;
729
+ } | undefined;
730
+ isRemote?: boolean | undefined;
731
+ level?: string | undefined;
732
+ employmentType?: string | undefined;
733
+ location?: string | undefined;
734
+ candidateLocation?: string | undefined;
735
+ responsibilities?: string[] | undefined;
736
+ requiredQualifications?: string[] | undefined;
737
+ preferredQualifications?: string[] | undefined;
738
+ benefits?: string[] | undefined;
739
+ description?: string | undefined;
740
+ experienceYears?: number | undefined;
741
+ } | undefined;
742
+ telegramMessageDate?: string | undefined;
743
+ updatedAt?: string | undefined;
744
+ isVisited?: boolean | undefined;
745
+ };
746
+ }>;
747
+ 404: z.ZodObject<{
748
+ success: z.ZodLiteral<false>;
749
+ message: z.ZodString;
750
+ errors: z.ZodOptional<z.ZodAny>;
751
+ }, "strip", z.ZodTypeAny, {
752
+ message: string;
753
+ success: false;
754
+ errors?: any;
755
+ }, {
756
+ message: string;
757
+ success: false;
758
+ errors?: any;
759
+ }>;
760
+ 401: z.ZodObject<{
761
+ success: z.ZodLiteral<false>;
762
+ message: z.ZodString;
763
+ errors: z.ZodOptional<z.ZodAny>;
764
+ }, "strip", z.ZodTypeAny, {
765
+ message: string;
766
+ success: false;
767
+ errors?: any;
768
+ }, {
769
+ message: string;
770
+ success: false;
771
+ errors?: any;
772
+ }>;
773
+ 500: z.ZodObject<{
774
+ success: z.ZodLiteral<false>;
775
+ message: z.ZodString;
776
+ errors: z.ZodOptional<z.ZodAny>;
777
+ }, "strip", z.ZodTypeAny, {
778
+ message: string;
779
+ success: false;
780
+ errors?: any;
781
+ }, {
782
+ message: string;
783
+ success: false;
784
+ errors?: any;
785
+ }>;
786
+ };
787
+ };
788
+ markJobAsViewed: {
789
+ summary: "Mark job as viewed by user";
790
+ method: "POST";
791
+ body: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
792
+ path: "/api/jobs/:id/view";
793
+ responses: {
794
+ 200: z.ZodObject<{
795
+ success: z.ZodLiteral<true>;
796
+ message: z.ZodString;
797
+ data: z.ZodObject<{
798
+ success: z.ZodBoolean;
799
+ }, "strip", z.ZodTypeAny, {
800
+ success: boolean;
801
+ }, {
802
+ success: boolean;
803
+ }>;
804
+ }, "strip", z.ZodTypeAny, {
805
+ message: string;
806
+ success: true;
807
+ data: {
808
+ success: boolean;
809
+ };
810
+ }, {
811
+ message: string;
812
+ success: true;
813
+ data: {
814
+ success: boolean;
815
+ };
816
+ }>;
817
+ 404: z.ZodObject<{
818
+ success: z.ZodLiteral<false>;
819
+ message: z.ZodString;
820
+ errors: z.ZodOptional<z.ZodAny>;
821
+ }, "strip", z.ZodTypeAny, {
822
+ message: string;
823
+ success: false;
824
+ errors?: any;
825
+ }, {
826
+ message: string;
827
+ success: false;
828
+ errors?: any;
829
+ }>;
830
+ 401: z.ZodObject<{
831
+ success: z.ZodLiteral<false>;
832
+ message: z.ZodString;
833
+ errors: z.ZodOptional<z.ZodAny>;
834
+ }, "strip", z.ZodTypeAny, {
835
+ message: string;
836
+ success: false;
837
+ errors?: any;
838
+ }, {
839
+ message: string;
840
+ success: false;
841
+ errors?: any;
842
+ }>;
843
+ 500: z.ZodObject<{
844
+ success: z.ZodLiteral<false>;
845
+ message: z.ZodString;
846
+ errors: z.ZodOptional<z.ZodAny>;
847
+ }, "strip", z.ZodTypeAny, {
848
+ message: string;
849
+ success: false;
850
+ errors?: any;
851
+ }, {
852
+ message: string;
853
+ success: false;
854
+ errors?: any;
855
+ }>;
856
+ };
857
+ };
858
+ searchSkills: {
859
+ query: z.ZodObject<{
860
+ q: z.ZodOptional<z.ZodString>;
861
+ }, "strip", z.ZodTypeAny, {
862
+ q?: string | undefined;
863
+ }, {
864
+ q?: string | undefined;
865
+ }>;
866
+ summary: "Autocomplete tech skills";
867
+ method: "GET";
868
+ path: "/api/jobs/skills/search";
869
+ responses: {
870
+ 200: z.ZodObject<{
871
+ success: z.ZodLiteral<true>;
872
+ message: z.ZodString;
873
+ data: z.ZodArray<z.ZodString, "many">;
874
+ }, "strip", z.ZodTypeAny, {
875
+ message: string;
876
+ success: true;
877
+ data: string[];
878
+ }, {
879
+ message: string;
880
+ success: true;
881
+ data: string[];
882
+ }>;
883
+ 500: z.ZodObject<{
884
+ success: z.ZodLiteral<false>;
885
+ message: z.ZodString;
886
+ errors: z.ZodOptional<z.ZodAny>;
887
+ }, "strip", z.ZodTypeAny, {
888
+ message: string;
889
+ success: false;
890
+ errors?: any;
891
+ }, {
892
+ message: string;
893
+ success: false;
894
+ errors?: any;
895
+ }>;
896
+ };
897
+ };
898
+ searchJobFunctions: {
899
+ query: z.ZodObject<{
900
+ q: z.ZodOptional<z.ZodString>;
901
+ }, "strip", z.ZodTypeAny, {
902
+ q?: string | undefined;
903
+ }, {
904
+ q?: string | undefined;
905
+ }>;
906
+ summary: "Autocomplete job functions";
907
+ method: "GET";
908
+ path: "/api/jobs/functions/search";
909
+ responses: {
910
+ 200: z.ZodObject<{
911
+ success: z.ZodLiteral<true>;
912
+ message: z.ZodString;
913
+ data: z.ZodArray<z.ZodString, "many">;
914
+ }, "strip", z.ZodTypeAny, {
915
+ message: string;
916
+ success: true;
917
+ data: string[];
918
+ }, {
919
+ message: string;
920
+ success: true;
921
+ data: string[];
922
+ }>;
923
+ 500: z.ZodObject<{
924
+ success: z.ZodLiteral<false>;
925
+ message: z.ZodString;
926
+ errors: z.ZodOptional<z.ZodAny>;
927
+ }, "strip", z.ZodTypeAny, {
928
+ message: string;
929
+ success: false;
930
+ errors?: any;
931
+ }, {
932
+ message: string;
933
+ success: false;
934
+ errors?: any;
935
+ }>;
936
+ };
937
+ };
938
+ };
939
+ //# sourceMappingURL=jobs.contract.d.ts.map