@zyacreatives/shared 2.0.68 → 2.0.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.
@@ -18,7 +18,7 @@ export declare const BrandEntitySchema: z.ZodObject<{
18
18
  disciplines: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
19
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
20
20
  name: z.ZodString;
21
- url: z.ZodString;
21
+ url: z.ZodURL;
22
22
  type: z.ZodDefault<z.ZodEnum<{
23
23
  readonly INSTAGRAM: "Instagram";
24
24
  readonly LINKEDIN: "LinkedIn";
@@ -30,8 +30,7 @@ export declare const BrandEntitySchema: z.ZodObject<{
30
30
  }, z.core.$strip>>>;
31
31
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
32
32
  title: z.ZodString;
33
- description: z.ZodString;
34
- link: z.ZodOptional<z.ZodString>;
33
+ link: z.ZodOptional<z.ZodURL>;
35
34
  year: z.ZodOptional<z.ZodNumber>;
36
35
  }, z.core.$strip>>>;
37
36
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -60,7 +59,7 @@ export declare const UpdateBrandProfileInputSchema: z.ZodObject<{
60
59
  brandName: z.ZodOptional<z.ZodString>;
61
60
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
62
61
  name: z.ZodString;
63
- url: z.ZodString;
62
+ url: z.ZodURL;
64
63
  type: z.ZodDefault<z.ZodEnum<{
65
64
  readonly INSTAGRAM: "Instagram";
66
65
  readonly LINKEDIN: "LinkedIn";
@@ -72,8 +71,7 @@ export declare const UpdateBrandProfileInputSchema: z.ZodObject<{
72
71
  }, z.core.$strip>>>;
73
72
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
74
73
  title: z.ZodString;
75
- description: z.ZodString;
76
- link: z.ZodOptional<z.ZodString>;
74
+ link: z.ZodOptional<z.ZodURL>;
77
75
  year: z.ZodOptional<z.ZodNumber>;
78
76
  }, z.core.$strip>>>;
79
77
  bio: z.ZodOptional<z.ZodString>;
@@ -102,7 +100,7 @@ export declare const CreateBrandOutputSchema: z.ZodObject<{
102
100
  disciplines: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
101
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
104
102
  name: z.ZodString;
105
- url: z.ZodString;
103
+ url: z.ZodURL;
106
104
  type: z.ZodDefault<z.ZodEnum<{
107
105
  readonly INSTAGRAM: "Instagram";
108
106
  readonly LINKEDIN: "LinkedIn";
@@ -114,8 +112,7 @@ export declare const CreateBrandOutputSchema: z.ZodObject<{
114
112
  }, z.core.$strip>>>;
115
113
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
116
114
  title: z.ZodString;
117
- description: z.ZodString;
118
- link: z.ZodOptional<z.ZodString>;
115
+ link: z.ZodOptional<z.ZodURL>;
119
116
  year: z.ZodOptional<z.ZodNumber>;
120
117
  }, z.core.$strip>>>;
121
118
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -130,7 +127,7 @@ export declare const GetBrandOutputSchema: z.ZodObject<{
130
127
  disciplines: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
128
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
129
  name: z.ZodString;
133
- url: z.ZodString;
130
+ url: z.ZodURL;
134
131
  type: z.ZodDefault<z.ZodEnum<{
135
132
  readonly INSTAGRAM: "Instagram";
136
133
  readonly LINKEDIN: "LinkedIn";
@@ -142,8 +139,7 @@ export declare const GetBrandOutputSchema: z.ZodObject<{
142
139
  }, z.core.$strip>>>;
143
140
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
144
141
  title: z.ZodString;
145
- description: z.ZodString;
146
- link: z.ZodOptional<z.ZodString>;
142
+ link: z.ZodOptional<z.ZodURL>;
147
143
  year: z.ZodOptional<z.ZodNumber>;
148
144
  }, z.core.$strip>>>;
149
145
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -158,7 +154,7 @@ export declare const UpdateBrandOutputSchema: z.ZodObject<{
158
154
  disciplines: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
155
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
160
156
  name: z.ZodString;
161
- url: z.ZodString;
157
+ url: z.ZodURL;
162
158
  type: z.ZodDefault<z.ZodEnum<{
163
159
  readonly INSTAGRAM: "Instagram";
164
160
  readonly LINKEDIN: "LinkedIn";
@@ -170,8 +166,7 @@ export declare const UpdateBrandOutputSchema: z.ZodObject<{
170
166
  }, z.core.$strip>>>;
171
167
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
172
168
  title: z.ZodString;
173
- description: z.ZodString;
174
- link: z.ZodOptional<z.ZodString>;
169
+ link: z.ZodOptional<z.ZodURL>;
175
170
  year: z.ZodOptional<z.ZodNumber>;
176
171
  }, z.core.$strip>>>;
177
172
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -44,17 +44,22 @@ exports.BrandEntitySchema = zod_openapi_1.z
44
44
  .array(zod_openapi_1.z.string())
45
45
  .optional()
46
46
  .openapi({ example: ["Marketing", "Product Development"] }),
47
- links: zod_openapi_1.z.object({
47
+ links: zod_openapi_1.z
48
+ .object({
48
49
  name: zod_openapi_1.z.string(),
49
- url: zod_openapi_1.z.string(),
50
+ url: zod_openapi_1.z.url(),
50
51
  type: zod_openapi_1.z.enum(constants_1.LINK_TYPES).default(constants_1.LINK_TYPES.GENERIC_WEBSITE),
51
- }).array().optional(),
52
- achievements: zod_openapi_1.z.object({
52
+ })
53
+ .array()
54
+ .optional(),
55
+ achievements: zod_openapi_1.z
56
+ .object({
53
57
  title: zod_openapi_1.z.string(),
54
- description: zod_openapi_1.z.string(),
55
- link: zod_openapi_1.z.string().optional(),
58
+ link: zod_openapi_1.z.url().optional(),
56
59
  year: zod_openapi_1.z.number().int().optional(),
57
- }).array().optional(),
60
+ })
61
+ .array()
62
+ .optional(),
58
63
  createdAt: zod_openapi_1.z.coerce
59
64
  .date()
60
65
  .optional()
@@ -114,17 +119,22 @@ exports.CreateBrandProfileInputSchema = zod_openapi_1.z
114
119
  exports.UpdateBrandProfileInputSchema = zod_openapi_1.z
115
120
  .object({
116
121
  brandName: zod_openapi_1.z.string().min(1).optional().openapi({ example: "Acme Studio" }),
117
- links: zod_openapi_1.z.object({
122
+ links: zod_openapi_1.z
123
+ .object({
118
124
  name: zod_openapi_1.z.string(),
119
- url: zod_openapi_1.z.string(),
125
+ url: zod_openapi_1.z.url(),
120
126
  type: zod_openapi_1.z.enum(constants_1.LINK_TYPES).default(constants_1.LINK_TYPES.GENERIC_WEBSITE),
121
- }).array().optional(),
122
- achievements: zod_openapi_1.z.object({
127
+ })
128
+ .array()
129
+ .optional(),
130
+ achievements: zod_openapi_1.z
131
+ .object({
123
132
  title: zod_openapi_1.z.string(),
124
- description: zod_openapi_1.z.string(),
125
- link: zod_openapi_1.z.string().optional(),
133
+ link: zod_openapi_1.z.url().optional(),
126
134
  year: zod_openapi_1.z.number().int().optional(),
127
- }).array().optional(),
135
+ })
136
+ .array()
137
+ .optional(),
128
138
  bio: zod_openapi_1.z
129
139
  .string()
130
140
  .max(210)
@@ -40,7 +40,7 @@ export declare const CreativeEntitySchema: z.ZodObject<{
40
40
  }, z.core.$strip>>>;
41
41
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
42
42
  name: z.ZodString;
43
- url: z.ZodString;
43
+ url: z.ZodURL;
44
44
  type: z.ZodDefault<z.ZodEnum<{
45
45
  readonly INSTAGRAM: "Instagram";
46
46
  readonly LINKEDIN: "LinkedIn";
@@ -52,7 +52,6 @@ export declare const CreativeEntitySchema: z.ZodObject<{
52
52
  }, z.core.$strip>>>;
53
53
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
54
54
  title: z.ZodString;
55
- description: z.ZodString;
56
55
  link: z.ZodOptional<z.ZodString>;
57
56
  year: z.ZodOptional<z.ZodNumber>;
58
57
  }, z.core.$strip>>>;
@@ -106,7 +105,7 @@ export declare const UpdateCreativeProfileInputSchema: z.ZodObject<{
106
105
  }, z.core.$strip>>>;
107
106
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
108
107
  name: z.ZodString;
109
- url: z.ZodString;
108
+ url: z.ZodURL;
110
109
  type: z.ZodDefault<z.ZodEnum<{
111
110
  readonly INSTAGRAM: "Instagram";
112
111
  readonly LINKEDIN: "LinkedIn";
@@ -160,7 +159,7 @@ export declare const CreateCreativeOutputSchema: z.ZodObject<{
160
159
  }, z.core.$strip>>>;
161
160
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
162
161
  name: z.ZodString;
163
- url: z.ZodString;
162
+ url: z.ZodURL;
164
163
  type: z.ZodDefault<z.ZodEnum<{
165
164
  readonly INSTAGRAM: "Instagram";
166
165
  readonly LINKEDIN: "LinkedIn";
@@ -172,7 +171,6 @@ export declare const CreateCreativeOutputSchema: z.ZodObject<{
172
171
  }, z.core.$strip>>>;
173
172
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
174
173
  title: z.ZodString;
175
- description: z.ZodString;
176
174
  link: z.ZodOptional<z.ZodString>;
177
175
  year: z.ZodOptional<z.ZodNumber>;
178
176
  }, z.core.$strip>>>;
@@ -203,7 +201,7 @@ export declare const GetCreativeOutputSchema: z.ZodObject<{
203
201
  }, z.core.$strip>>>;
204
202
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
205
203
  name: z.ZodString;
206
- url: z.ZodString;
204
+ url: z.ZodURL;
207
205
  type: z.ZodDefault<z.ZodEnum<{
208
206
  readonly INSTAGRAM: "Instagram";
209
207
  readonly LINKEDIN: "LinkedIn";
@@ -215,7 +213,6 @@ export declare const GetCreativeOutputSchema: z.ZodObject<{
215
213
  }, z.core.$strip>>>;
216
214
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
217
215
  title: z.ZodString;
218
- description: z.ZodString;
219
216
  link: z.ZodOptional<z.ZodString>;
220
217
  year: z.ZodOptional<z.ZodNumber>;
221
218
  }, z.core.$strip>>>;
@@ -246,7 +243,7 @@ export declare const UpdateCreativeOutputSchema: z.ZodObject<{
246
243
  }, z.core.$strip>>>;
247
244
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
248
245
  name: z.ZodString;
249
- url: z.ZodString;
246
+ url: z.ZodURL;
250
247
  type: z.ZodDefault<z.ZodEnum<{
251
248
  readonly INSTAGRAM: "Instagram";
252
249
  readonly LINKEDIN: "LinkedIn";
@@ -258,7 +255,6 @@ export declare const UpdateCreativeOutputSchema: z.ZodObject<{
258
255
  }, z.core.$strip>>>;
259
256
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
260
257
  title: z.ZodString;
261
- description: z.ZodString;
262
258
  link: z.ZodOptional<z.ZodString>;
263
259
  year: z.ZodOptional<z.ZodNumber>;
264
260
  }, z.core.$strip>>>;
@@ -52,25 +52,33 @@ exports.CreativeEntitySchema = zod_openapi_1.z
52
52
  .array(zod_openapi_1.z.string())
53
53
  .optional()
54
54
  .openapi({ example: ["Design", "Art Direction"] }),
55
- workExperience: zod_openapi_1.z.object({
55
+ workExperience: zod_openapi_1.z
56
+ .object({
56
57
  companyName: zod_openapi_1.z.string(),
57
58
  position: zod_openapi_1.z.string(),
58
59
  startDate: zod_openapi_1.z.coerce.date().optional(),
59
60
  endDate: zod_openapi_1.z.coerce.date().optional(),
60
61
  currentlyWorking: zod_openapi_1.z.boolean().optional(),
61
62
  description: zod_openapi_1.z.string().optional(),
62
- }).array().optional(),
63
- links: zod_openapi_1.z.object({
63
+ })
64
+ .array()
65
+ .optional(),
66
+ links: zod_openapi_1.z
67
+ .object({
64
68
  name: zod_openapi_1.z.string(),
65
- url: zod_openapi_1.z.string(),
69
+ url: zod_openapi_1.z.url(),
66
70
  type: zod_openapi_1.z.enum(constants_1.LINK_TYPES).default(constants_1.LINK_TYPES.GENERIC_WEBSITE),
67
- }).array().optional(),
68
- achievements: zod_openapi_1.z.object({
71
+ })
72
+ .array()
73
+ .optional(),
74
+ achievements: zod_openapi_1.z
75
+ .object({
69
76
  title: zod_openapi_1.z.string(),
70
- description: zod_openapi_1.z.string(),
71
77
  link: zod_openapi_1.z.string().optional(),
72
78
  year: zod_openapi_1.z.number().int().optional(),
73
- }).array().optional(),
79
+ })
80
+ .array()
81
+ .optional(),
74
82
  createdAt: zod_openapi_1.z.coerce
75
83
  .date()
76
84
  .optional()
@@ -170,25 +178,34 @@ exports.UpdateCreativeProfileInputSchema = zod_openapi_1.z
170
178
  .min(1, "At least one discipline is required")
171
179
  .optional()
172
180
  .openapi({ example: ["frontend", "ui-ux"] }),
173
- workExperience: zod_openapi_1.z.object({
181
+ workExperience: zod_openapi_1.z
182
+ .object({
174
183
  companyName: zod_openapi_1.z.string(),
175
184
  position: zod_openapi_1.z.string(),
176
185
  startDate: zod_openapi_1.z.coerce.date().optional(),
177
186
  endDate: zod_openapi_1.z.coerce.date().optional(),
178
187
  currentlyWorking: zod_openapi_1.z.boolean().optional(),
179
188
  description: zod_openapi_1.z.string().optional(),
180
- }).array().optional(),
181
- links: zod_openapi_1.z.object({
189
+ })
190
+ .array()
191
+ .optional(),
192
+ links: zod_openapi_1.z
193
+ .object({
182
194
  name: zod_openapi_1.z.string(),
183
- url: zod_openapi_1.z.string(),
195
+ url: zod_openapi_1.z.url(),
184
196
  type: zod_openapi_1.z.enum(constants_1.LINK_TYPES).default(constants_1.LINK_TYPES.GENERIC_WEBSITE),
185
- }).array().optional(),
186
- achievements: zod_openapi_1.z.object({
197
+ })
198
+ .array()
199
+ .optional(),
200
+ achievements: zod_openapi_1.z
201
+ .object({
187
202
  title: zod_openapi_1.z.string(),
188
203
  description: zod_openapi_1.z.string(),
189
204
  link: zod_openapi_1.z.string().optional(),
190
205
  year: zod_openapi_1.z.number().int().optional(),
191
- }).array().optional(),
206
+ })
207
+ .array()
208
+ .optional(),
192
209
  })
193
210
  .openapi({
194
211
  title: "update creative profile",
@@ -104,7 +104,7 @@ export declare const UserProfileEntitySchema: z.ZodObject<{
104
104
  disciplines: z.ZodOptional<z.ZodArray<z.ZodString>>;
105
105
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
106
106
  name: z.ZodString;
107
- url: z.ZodString;
107
+ url: z.ZodURL;
108
108
  type: z.ZodDefault<z.ZodEnum<{
109
109
  readonly INSTAGRAM: "Instagram";
110
110
  readonly LINKEDIN: "LinkedIn";
@@ -116,8 +116,7 @@ export declare const UserProfileEntitySchema: z.ZodObject<{
116
116
  }, z.core.$strip>>>;
117
117
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
118
118
  title: z.ZodString;
119
- description: z.ZodString;
120
- link: z.ZodOptional<z.ZodString>;
119
+ link: z.ZodOptional<z.ZodURL>;
121
120
  year: z.ZodOptional<z.ZodNumber>;
122
121
  }, z.core.$strip>>>;
123
122
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -147,7 +146,7 @@ export declare const UserProfileEntitySchema: z.ZodObject<{
147
146
  }, z.core.$strip>>>;
148
147
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
149
148
  name: z.ZodString;
150
- url: z.ZodString;
149
+ url: z.ZodURL;
151
150
  type: z.ZodDefault<z.ZodEnum<{
152
151
  readonly INSTAGRAM: "Instagram";
153
152
  readonly LINKEDIN: "LinkedIn";
@@ -159,7 +158,6 @@ export declare const UserProfileEntitySchema: z.ZodObject<{
159
158
  }, z.core.$strip>>>;
160
159
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
161
160
  title: z.ZodString;
162
- description: z.ZodString;
163
161
  link: z.ZodOptional<z.ZodString>;
164
162
  year: z.ZodOptional<z.ZodNumber>;
165
163
  }, z.core.$strip>>>;
@@ -493,7 +491,7 @@ export declare const GetAuthenticatedUserProfileOutputSchema: z.ZodObject<{
493
491
  disciplines: z.ZodOptional<z.ZodArray<z.ZodString>>;
494
492
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
495
493
  name: z.ZodString;
496
- url: z.ZodString;
494
+ url: z.ZodURL;
497
495
  type: z.ZodDefault<z.ZodEnum<{
498
496
  readonly INSTAGRAM: "Instagram";
499
497
  readonly LINKEDIN: "LinkedIn";
@@ -505,8 +503,7 @@ export declare const GetAuthenticatedUserProfileOutputSchema: z.ZodObject<{
505
503
  }, z.core.$strip>>>;
506
504
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
507
505
  title: z.ZodString;
508
- description: z.ZodString;
509
- link: z.ZodOptional<z.ZodString>;
506
+ link: z.ZodOptional<z.ZodURL>;
510
507
  year: z.ZodOptional<z.ZodNumber>;
511
508
  }, z.core.$strip>>>;
512
509
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -536,7 +533,7 @@ export declare const GetAuthenticatedUserProfileOutputSchema: z.ZodObject<{
536
533
  }, z.core.$strip>>>;
537
534
  links: z.ZodOptional<z.ZodArray<z.ZodObject<{
538
535
  name: z.ZodString;
539
- url: z.ZodString;
536
+ url: z.ZodURL;
540
537
  type: z.ZodDefault<z.ZodEnum<{
541
538
  readonly INSTAGRAM: "Instagram";
542
539
  readonly LINKEDIN: "LinkedIn";
@@ -548,7 +545,6 @@ export declare const GetAuthenticatedUserProfileOutputSchema: z.ZodObject<{
548
545
  }, z.core.$strip>>>;
549
546
  achievements: z.ZodOptional<z.ZodArray<z.ZodObject<{
550
547
  title: z.ZodString;
551
- description: z.ZodString;
552
548
  link: z.ZodOptional<z.ZodString>;
553
549
  year: z.ZodOptional<z.ZodNumber>;
554
550
  }, z.core.$strip>>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zyacreatives/shared",
3
- "version": "2.0.68",
3
+ "version": "2.0.70",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -3,7 +3,6 @@ import { ProfileIdentifierSchema } from "./common";
3
3
  import { EXPERIENCE_LEVELS, ExperienceLevel, LINK_TYPES } from "../constants";
4
4
  import { MinimalUserSchema } from "./user";
5
5
 
6
-
7
6
  export const MinimalBrandEntitySchema = z.object({
8
7
  id: z.cuid2().openapi({ example: "brd_cksd0v6q0000s9a5y8z7p3x9" }),
9
8
  userId: z.cuid2().openapi({ example: "user_owner_123" }),
@@ -25,8 +24,7 @@ export const MinimalBrandEntitySchema = z.object({
25
24
  .optional()
26
25
  .openapi({ example: "2025-10-13T09:00:00.000Z" }),
27
26
  updatedAt: z.coerce.date().openapi({ example: "2025-10-13T09:00:00.000Z" }),
28
-
29
- })
27
+ });
30
28
 
31
29
  export const BrandEntitySchema = z
32
30
  .object({
@@ -46,17 +44,22 @@ export const BrandEntitySchema = z
46
44
  .optional()
47
45
  .openapi({ example: ["Marketing", "Product Development"] }),
48
46
 
49
- links: z.object({
50
- name: z.string(),
51
- url: z.string(),
52
- type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
53
- }).array().optional(),
54
- achievements: z.object({
55
- title: z.string(),
56
- description: z.string(),
57
- link: z.string().optional(),
58
- year: z.number().int().optional(),
59
- }).array().optional(),
47
+ links: z
48
+ .object({
49
+ name: z.string(),
50
+ url: z.url(),
51
+ type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
52
+ })
53
+ .array()
54
+ .optional(),
55
+ achievements: z
56
+ .object({
57
+ title: z.string(),
58
+ link: z.url().optional(),
59
+ year: z.number().int().optional(),
60
+ })
61
+ .array()
62
+ .optional(),
60
63
  createdAt: z.coerce
61
64
  .date()
62
65
  .optional()
@@ -127,17 +130,22 @@ export const CreateBrandProfileInputSchema = z
127
130
  export const UpdateBrandProfileInputSchema = z
128
131
  .object({
129
132
  brandName: z.string().min(1).optional().openapi({ example: "Acme Studio" }),
130
- links: z.object({
131
- name: z.string(),
132
- url: z.string(),
133
- type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
134
- }).array().optional(),
135
- achievements: z.object({
136
- title: z.string(),
137
- description: z.string(),
138
- link: z.string().optional(),
139
- year: z.number().int().optional(),
140
- }).array().optional(),
133
+ links: z
134
+ .object({
135
+ name: z.string(),
136
+ url: z.url(),
137
+ type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
138
+ })
139
+ .array()
140
+ .optional(),
141
+ achievements: z
142
+ .object({
143
+ title: z.string(),
144
+ link: z.url().optional(),
145
+ year: z.number().int().optional(),
146
+ })
147
+ .array()
148
+ .optional(),
141
149
  bio: z
142
150
  .string()
143
151
  .max(210)
@@ -191,4 +199,4 @@ export const SearchBrandInputSchema = z.object({
191
199
  export const SearchBrandOutputSchema = z.object({
192
200
  brands: z.array(BrandWithUserEntitySchema),
193
201
  nextCursor: z.string().optional(),
194
- })
202
+ });
@@ -34,7 +34,7 @@ export const MinimalCreativeEntitySchema = z.object({
34
34
  .optional()
35
35
  .openapi({ example: "2025-10-13T09:00:00.000Z" }),
36
36
  updatedAt: z.coerce.date().openapi({ example: "2025-10-13T09:00:00.000Z" }),
37
- })
37
+ });
38
38
 
39
39
  export const CreativeEntitySchema = z
40
40
  .object({
@@ -64,25 +64,33 @@ export const CreativeEntitySchema = z
64
64
  .array(z.string())
65
65
  .optional()
66
66
  .openapi({ example: ["Design", "Art Direction"] }),
67
- workExperience: z.object({
68
- companyName: z.string(),
69
- position: z.string(),
70
- startDate: z.coerce.date().optional(),
71
- endDate: z.coerce.date().optional(),
72
- currentlyWorking: z.boolean().optional(),
73
- description: z.string().optional(),
74
- }).array().optional(),
75
- links: z.object({
76
- name: z.string(),
77
- url: z.string(),
78
- type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
79
- }).array().optional(),
80
- achievements: z.object({
81
- title: z.string(),
82
- description: z.string(),
83
- link: z.string().optional(),
84
- year: z.number().int().optional(),
85
- }).array().optional(),
67
+ workExperience: z
68
+ .object({
69
+ companyName: z.string(),
70
+ position: z.string(),
71
+ startDate: z.coerce.date().optional(),
72
+ endDate: z.coerce.date().optional(),
73
+ currentlyWorking: z.boolean().optional(),
74
+ description: z.string().optional(),
75
+ })
76
+ .array()
77
+ .optional(),
78
+ links: z
79
+ .object({
80
+ name: z.string(),
81
+ url: z.url(),
82
+ type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
83
+ })
84
+ .array()
85
+ .optional(),
86
+ achievements: z
87
+ .object({
88
+ title: z.string(),
89
+ link: z.string().optional(),
90
+ year: z.number().int().optional(),
91
+ })
92
+ .array()
93
+ .optional(),
86
94
  createdAt: z.coerce
87
95
  .date()
88
96
  .optional()
@@ -203,25 +211,34 @@ export const UpdateCreativeProfileInputSchema = z
203
211
  .min(1, "At least one discipline is required")
204
212
  .optional()
205
213
  .openapi({ example: ["frontend", "ui-ux"] }),
206
- workExperience: z.object({
207
- companyName: z.string(),
208
- position: z.string(),
209
- startDate: z.coerce.date().optional(),
210
- endDate: z.coerce.date().optional(),
211
- currentlyWorking: z.boolean().optional(),
212
- description: z.string().optional(),
213
- }).array().optional(),
214
- links: z.object({
215
- name: z.string(),
216
- url: z.string(),
217
- type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
218
- }).array().optional(),
219
- achievements: z.object({
220
- title: z.string(),
221
- description: z.string(),
222
- link: z.string().optional(),
223
- year: z.number().int().optional(),
224
- }).array().optional(),
214
+ workExperience: z
215
+ .object({
216
+ companyName: z.string(),
217
+ position: z.string(),
218
+ startDate: z.coerce.date().optional(),
219
+ endDate: z.coerce.date().optional(),
220
+ currentlyWorking: z.boolean().optional(),
221
+ description: z.string().optional(),
222
+ })
223
+ .array()
224
+ .optional(),
225
+ links: z
226
+ .object({
227
+ name: z.string(),
228
+ url: z.url(),
229
+ type: z.enum(LINK_TYPES).default(LINK_TYPES.GENERIC_WEBSITE),
230
+ })
231
+ .array()
232
+ .optional(),
233
+ achievements: z
234
+ .object({
235
+ title: z.string(),
236
+ description: z.string(),
237
+ link: z.string().optional(),
238
+ year: z.number().int().optional(),
239
+ })
240
+ .array()
241
+ .optional(),
225
242
  })
226
243
  .openapi({
227
244
  title: "update creative profile",
@@ -242,7 +259,7 @@ export const UpdateCreativeOutputSchema = CreativeEntitySchema;
242
259
 
243
260
  export const CreativeWithUserEntitySchema = MinimalCreativeEntitySchema.extend({
244
261
  user: MinimalUserSchema,
245
- })
262
+ });
246
263
 
247
264
  export const SearchCreativeInputSchema = z.object({
248
265
  string: z