@zyacreatives/shared 2.5.69 → 2.5.70

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.
@@ -1,24 +1,17 @@
1
1
  "use strict";
2
+ // job-application.schemas.ts
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseJobApplicationEntitySchema = exports.GetTrackedJobApplicationsOutputSchema = exports.GetTrackedJobApplicationsInputSchema = exports.UpdateJobApplicationInputSchema = exports.CreateJobApplicationInputSchema = exports.TrackedJobApplicationEntitySchema = exports.MinimalJobApplicationEntitySchema = exports.JobApplicationEntitySchema = void 0;
4
+ exports.GetBrandUnansweredApplicationsOutputSchema = exports.GetApplicationStatusUpdatesCountOutputSchema = exports.GetTrackedJobApplicationsOutputSchema = exports.GetTrackedJobApplicationsInputSchema = exports.UpdateJobApplicationInputSchema = exports.CreateJobApplicationInputSchema = exports.ApplicationIdInputSchema = exports.TrackedJobApplicationEntitySchema = exports.MinimalJobApplicationEntitySchema = exports.BaseJobApplicationEntitySchema = exports.JobApplicationEntitySchema = exports.JobApplicationResponseSchema = exports.JobApplicationShape = void 0;
4
5
  const zod_openapi_1 = require("@hono/zod-openapi");
5
6
  const constants_1 = require("../constants");
6
7
  const job_1 = require("./job");
7
8
  const minimal_user_1 = require("./minimal-user");
8
- /**
9
- * --------------------------------
10
- * ENUMS
11
- * --------------------------------
12
- */
13
- const ApplicationStatusSchema = zod_openapi_1.z.enum(Object.values(constants_1.APPLICATION_STATUS));
14
- const ExperienceLevelSchema = zod_openapi_1.z.enum(Object.values(constants_1.EXPERIENCE_LEVELS));
15
- const JobAvailabilitySchema = zod_openapi_1.z.enum(Object.values(constants_1.JOB_AVAILABILITY_TYPES));
16
9
  /**
17
10
  * --------------------------------
18
11
  * SHAPE
19
12
  * --------------------------------
20
13
  */
21
- const JobApplicationShape = zod_openapi_1.z.object({
14
+ exports.JobApplicationShape = zod_openapi_1.z.object({
22
15
  jobId: zod_openapi_1.z.cuid2(),
23
16
  firstName: zod_openapi_1.z.string().optional(),
24
17
  lastName: zod_openapi_1.z.string().optional(),
@@ -26,8 +19,8 @@ const JobApplicationShape = zod_openapi_1.z.object({
26
19
  phoneNumber: zod_openapi_1.z.string().nullable(),
27
20
  currentRole: zod_openapi_1.z.string(),
28
21
  resumeUrl: zod_openapi_1.z.url(),
29
- experienceLevel: ExperienceLevelSchema.optional(),
30
- availability: JobAvailabilitySchema.optional(),
22
+ experienceLevel: zod_openapi_1.z.enum(constants_1.EXPERIENCE_LEVELS).optional(),
23
+ availability: zod_openapi_1.z.enum(constants_1.JOB_AVAILABILITY_TYPES).optional(),
31
24
  coverLetter: zod_openapi_1.z.string().nullable(),
32
25
  receiveEmailUpdates: zod_openapi_1.z.boolean(),
33
26
  wagesAmount: zod_openapi_1.z.number().nullable(),
@@ -53,6 +46,24 @@ const JobApplicationShape = zod_openapi_1.z.object({
53
46
  }))
54
47
  .optional(),
55
48
  });
49
+ /**
50
+ * --------------------------------
51
+ * RESPONSE / OFFER / STATUS TRACKING
52
+ * --------------------------------
53
+ */
54
+ exports.JobApplicationResponseSchema = zod_openapi_1.z.object({
55
+ brandResponseMessage: zod_openapi_1.z.string().max(3000).nullable().optional(),
56
+ meetingLink: zod_openapi_1.z.url().nullable().optional(),
57
+ offerAcceptedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
58
+ offerDeclinedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
59
+ hiredAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
60
+ rejectedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
61
+ lastStatusChangedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
62
+ lastStatusViewedByApplicantAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
63
+ lastStatusViewedByBrandAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
64
+ lastUpdatedByUserId: zod_openapi_1.z.cuid2().nullable().optional(),
65
+ hasUnreadStatusUpdate: zod_openapi_1.z.boolean().default(false).optional(),
66
+ });
56
67
  /**
57
68
  * --------------------------------
58
69
  * BASE ENTITY
@@ -63,12 +74,16 @@ exports.JobApplicationEntitySchema = zod_openapi_1.z
63
74
  id: zod_openapi_1.z.cuid2(),
64
75
  applicantId: zod_openapi_1.z.cuid2(),
65
76
  user: minimal_user_1.MinimalUserSchema,
66
- ...JobApplicationShape.shape,
67
- applicationStatus: ApplicationStatusSchema,
77
+ ...exports.JobApplicationShape.shape,
78
+ ...exports.JobApplicationResponseSchema.shape,
79
+ applicationStatus: zod_openapi_1.z.enum(constants_1.APPLICATION_STATUS),
68
80
  createdAt: zod_openapi_1.z.iso.datetime(),
69
81
  updatedAt: zod_openapi_1.z.iso.datetime(),
70
82
  })
71
83
  .openapi("JobApplication");
84
+ exports.BaseJobApplicationEntitySchema = exports.JobApplicationEntitySchema.omit({
85
+ user: true,
86
+ });
72
87
  /**
73
88
  * --------------------------------
74
89
  * DERIVED ENTITIES
@@ -78,14 +93,27 @@ exports.MinimalJobApplicationEntitySchema = zod_openapi_1.z.object({
78
93
  id: zod_openapi_1.z.cuid2(),
79
94
  jobId: zod_openapi_1.z.cuid2(),
80
95
  user: minimal_user_1.MinimalUserSchema,
81
- coverLetter: zod_openapi_1.z.string(),
82
- applicationStatus: ApplicationStatusSchema,
96
+ coverLetter: zod_openapi_1.z.string().nullable(),
97
+ applicationStatus: zod_openapi_1.z.enum(constants_1.APPLICATION_STATUS),
98
+ brandResponseMessage: zod_openapi_1.z.string().nullable().optional(),
99
+ meetingLink: zod_openapi_1.z.url().nullable().optional(),
100
+ offerAcceptedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
101
+ offerDeclinedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
102
+ lastStatusChangedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
103
+ hasUnreadStatusUpdate: zod_openapi_1.z.boolean().default(false).optional(),
83
104
  createdAt: zod_openapi_1.z.iso.datetime(),
84
105
  });
85
106
  exports.TrackedJobApplicationEntitySchema = zod_openapi_1.z.object({
86
107
  id: zod_openapi_1.z.cuid2(),
87
- applicationStatus: ApplicationStatusSchema,
108
+ applicationStatus: zod_openapi_1.z.enum(constants_1.APPLICATION_STATUS),
109
+ brandResponseMessage: zod_openapi_1.z.string().nullable().optional(),
110
+ meetingLink: zod_openapi_1.z.url().nullable().optional(),
111
+ offerAcceptedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
112
+ offerDeclinedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
113
+ lastStatusChangedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
114
+ hasUnreadStatusUpdate: zod_openapi_1.z.boolean().default(false).optional(),
88
115
  createdAt: zod_openapi_1.z.iso.datetime(),
116
+ updatedAt: zod_openapi_1.z.iso.datetime().optional(),
89
117
  job: job_1.NormalizedJobSchema,
90
118
  });
91
119
  /**
@@ -93,19 +121,26 @@ exports.TrackedJobApplicationEntitySchema = zod_openapi_1.z.object({
93
121
  * INPUTS
94
122
  * --------------------------------
95
123
  */
96
- exports.CreateJobApplicationInputSchema = JobApplicationShape.extend({
124
+ exports.ApplicationIdInputSchema = zod_openapi_1.z.object({
125
+ id: zod_openapi_1.z.cuid2(),
126
+ });
127
+ exports.CreateJobApplicationInputSchema = exports.JobApplicationShape.extend({
97
128
  jobSections: zod_openapi_1.z.array(zod_openapi_1.z.enum(constants_1.JOB_SECTIONS)).optional(),
98
129
  });
99
130
  exports.UpdateJobApplicationInputSchema = exports.CreateJobApplicationInputSchema.partial().extend({
100
131
  id: zod_openapi_1.z.cuid2(),
101
- applicationStatus: ApplicationStatusSchema.optional(),
132
+ applicationStatus: zod_openapi_1.z.enum(constants_1.APPLICATION_STATUS).optional(),
133
+ brandResponseMessage: zod_openapi_1.z.string().max(3000).nullable().optional(),
134
+ meetingLink: zod_openapi_1.z.url().nullable().optional(),
135
+ offerAcceptedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
136
+ offerDeclinedAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
137
+ lastStatusViewedByApplicantAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
138
+ lastStatusViewedByBrandAt: zod_openapi_1.z.iso.datetime().nullable().optional(),
102
139
  });
103
140
  exports.GetTrackedJobApplicationsInputSchema = zod_openapi_1.z.object({
104
141
  query: zod_openapi_1.z.string().optional(),
105
- status: ApplicationStatusSchema.optional(),
106
- jobType: zod_openapi_1.z
107
- .enum(Object.values(constants_1.JOB_TYPE))
108
- .optional(),
142
+ status: zod_openapi_1.z.enum(constants_1.APPLICATION_STATUS).optional(),
143
+ jobType: zod_openapi_1.z.enum(constants_1.JOB_TYPE).optional(),
109
144
  page: zod_openapi_1.z.coerce.number().min(1).default(1),
110
145
  limit: zod_openapi_1.z.coerce.number().min(1).max(100).default(20),
111
146
  });
@@ -122,6 +157,9 @@ exports.GetTrackedJobApplicationsOutputSchema = zod_openapi_1.z.object({
122
157
  hasNextPage: zod_openapi_1.z.boolean(),
123
158
  hasPrevPage: zod_openapi_1.z.boolean(),
124
159
  });
125
- exports.BaseJobApplicationEntitySchema = exports.JobApplicationEntitySchema.omit({
126
- user: true,
160
+ exports.GetApplicationStatusUpdatesCountOutputSchema = zod_openapi_1.z.object({
161
+ unreadCount: zod_openapi_1.z.number(),
162
+ });
163
+ exports.GetBrandUnansweredApplicationsOutputSchema = zod_openapi_1.z.object({
164
+ unansweredCount: zod_openapi_1.z.number(),
127
165
  });