@zyacreatives/shared 1.2.8 → 1.3.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.
@@ -264,3 +264,7 @@ export declare const FRONTEND_API_ROUTES: {
264
264
  readonly getProjectUser: (projectId: string) => string;
265
265
  };
266
266
  };
267
+ export declare const DEFAULT_DISCIPLINES: {
268
+ name: string;
269
+ slug: string;
270
+ }[];
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FRONTEND_API_ROUTES = exports.API_ROUTES = exports.INVESTOR_VERIFICATION_DOCUMENT_TYPES = exports.INVESTOR_VERIFICATION_DOCUMENT_STATUSES = exports.GEOGRAPHIC_FOCUS = exports.INVESTMENT_SIZES = exports.INVESTOR_TYPES = exports.ONBOARDING_PAGES = exports.EXPERIENCE_LEVELS = exports.CLIENT_TYPES = exports.USER_STATUSES = exports.ROLES = void 0;
3
+ exports.DEFAULT_DISCIPLINES = exports.FRONTEND_API_ROUTES = exports.API_ROUTES = exports.INVESTOR_VERIFICATION_DOCUMENT_TYPES = exports.INVESTOR_VERIFICATION_DOCUMENT_STATUSES = exports.GEOGRAPHIC_FOCUS = exports.INVESTMENT_SIZES = exports.INVESTOR_TYPES = exports.ONBOARDING_PAGES = exports.EXPERIENCE_LEVELS = exports.CLIENT_TYPES = exports.USER_STATUSES = exports.ROLES = void 0;
4
4
  exports.ROLES = {
5
5
  CREATIVE: "CREATIVE",
6
6
  BRAND: "BRAND",
@@ -257,3 +257,62 @@ exports.FRONTEND_API_ROUTES = {
257
257
  getProjectUser: (projectId) => `${projectId}/user`,
258
258
  },
259
259
  };
260
+ exports.DEFAULT_DISCIPLINES = [
261
+ { name: "Painting", slug: "painting" },
262
+ { name: "Drawing", slug: "drawing" },
263
+ { name: "Sculpture", slug: "sculpture" },
264
+ { name: "Printmaking", slug: "printmaking" },
265
+ { name: "Photography", slug: "photography" },
266
+ { name: "Illustration", slug: "illustration" },
267
+ { name: "Installation Art", slug: "installation_art" },
268
+ { name: "Mixed Media Art", slug: "mixed_media_art" },
269
+ { name: "Conceptual Art", slug: "conceptual_art" },
270
+ { name: "Graphic Design", slug: "graphic_design" },
271
+ { name: "Fashion Design", slug: "fashion_design" },
272
+ { name: "Interior Design", slug: "interior_design" },
273
+ { name: "Industrial / Product Design", slug: "industrial_product_design" },
274
+ { name: "UX Design", slug: "ux_design" },
275
+ { name: "UI Design", slug: "ui_design" },
276
+ { name: "Motion Design", slug: "motion_design" },
277
+ { name: "Textile Design", slug: "textile_design" },
278
+ { name: "Jewelry Design", slug: "jewelry_design" },
279
+ { name: "Furniture Design", slug: "furniture_design" },
280
+ { name: "Architecture", slug: "architecture" },
281
+ { name: "Web Design", slug: "web_design" },
282
+ { name: "Exhibition Design", slug: "exhibition_design" },
283
+ { name: "Design Research", slug: "design_research" },
284
+ { name: "Film / Video Production", slug: "film_video_production" },
285
+ { name: "Animation", slug: "animation" },
286
+ { name: "Game Design", slug: "game_design" },
287
+ { name: "Digital Media Art", slug: "digital_media_art" },
288
+ { name: "Advertising / Art Direction", slug: "advertising_art_direction" },
289
+ { name: "Copywriting", slug: "copywriting" },
290
+ { name: "Content Strategy", slug: "content_strategy" },
291
+ {
292
+ name: "Social Media Content Creation",
293
+ slug: "social_media_content_creation",
294
+ },
295
+ { name: "Podcasting", slug: "podcasting" },
296
+ { name: "Journalism", slug: "journalism" },
297
+ { name: "Creative Coding", slug: "creative_coding" },
298
+ {
299
+ name: "Augmented Reality (AR) Design",
300
+ slug: "augmented_reality_ar_design",
301
+ },
302
+ { name: "Virtual Reality (VR) Design", slug: "virtual_reality_vr_design" },
303
+ { name: "Interaction Design", slug: "interaction_design" },
304
+ { name: "Music", slug: "music" },
305
+ { name: "Dance", slug: "dance" },
306
+ { name: "Theatre / Acting", slug: "theatre_acting" },
307
+ {
308
+ name: "Spoken Word / Performance Poetry",
309
+ slug: "spoken_word_performance_poetry",
310
+ },
311
+ { name: "DJ", slug: "dj" },
312
+ { name: "Sound Design", slug: "sound_design" },
313
+ { name: "Voice Acting", slug: "voice_acting" },
314
+ { name: "Creative Writing", slug: "creative_writing" },
315
+ { name: "Comics / Graphic Novels", slug: "comics_graphic_novels" },
316
+ { name: "Curation", slug: "curation" },
317
+ { name: "Creative Entrepreneurship", slug: "creative_entrepreneurship" },
318
+ ];
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./types/index";
2
2
  export * from "./constants";
3
3
  export * from "./schemas/index";
4
+ export * from "./utils/slugify";
package/dist/index.js CHANGED
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types/index"), exports);
18
18
  __exportStar(require("./constants"), exports);
19
19
  __exportStar(require("./schemas/index"), exports);
20
+ __exportStar(require("./utils/slugify"), exports);
@@ -23,13 +23,13 @@ export declare const ListBrandsInputSchema: z.ZodObject<{
23
23
  page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
24
24
  perPage: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
25
25
  }, z.core.$strip>;
26
- export declare const CreateBrandProfileSchema: z.ZodObject<{
26
+ export declare const CreateBrandProfileInputSchema: z.ZodObject<{
27
27
  brandName: z.ZodString;
28
28
  bio: z.ZodDefault<z.ZodOptional<z.ZodString>>;
29
29
  tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
30
30
  disciplineSlugs: z.ZodDefault<z.ZodArray<z.ZodString>>;
31
31
  }, z.core.$strip>;
32
- export declare const UpdateBrandProfileSchema: z.ZodObject<{
32
+ export declare const UpdateBrandProfileInputSchema: z.ZodObject<{
33
33
  brandName: z.ZodOptional<z.ZodString>;
34
34
  bio: z.ZodOptional<z.ZodString>;
35
35
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -43,7 +43,7 @@ export declare const GetBrandQuerySchema: z.ZodObject<{
43
43
  userId: "userId";
44
44
  }>>>;
45
45
  }, z.core.$strip>;
46
- export declare const CreateBrandEndpointResponseSchema: z.ZodObject<{
46
+ export declare const CreateBrandOutputSchema: z.ZodObject<{
47
47
  id: z.ZodCUID2;
48
48
  userId: z.ZodCUID2;
49
49
  brandName: z.ZodString;
@@ -53,7 +53,7 @@ export declare const CreateBrandEndpointResponseSchema: z.ZodObject<{
53
53
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
54
54
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
55
55
  }, z.core.$strip>;
56
- export declare const GetBrandEndpointResponseSchema: z.ZodObject<{
56
+ export declare const GetBrandOutputSchema: z.ZodObject<{
57
57
  id: z.ZodCUID2;
58
58
  userId: z.ZodCUID2;
59
59
  brandName: z.ZodString;
@@ -63,7 +63,7 @@ export declare const GetBrandEndpointResponseSchema: z.ZodObject<{
63
63
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
64
64
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
65
65
  }, z.core.$strip>;
66
- export declare const UpdateBrandEndpointResponseSchema: z.ZodObject<{
66
+ export declare const UpdateBrandOutputSchema: z.ZodObject<{
67
67
  id: z.ZodCUID2;
68
68
  userId: z.ZodCUID2;
69
69
  brandName: z.ZodString;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateBrandEndpointResponseSchema = exports.GetBrandEndpointResponseSchema = exports.CreateBrandEndpointResponseSchema = exports.GetBrandQuerySchema = exports.GetBrandParamsSchema = exports.UpdateBrandProfileSchema = exports.CreateBrandProfileSchema = exports.ListBrandsInputSchema = exports.BrandEntitySchema = void 0;
3
+ exports.UpdateBrandOutputSchema = exports.GetBrandOutputSchema = exports.CreateBrandOutputSchema = exports.GetBrandQuerySchema = exports.GetBrandParamsSchema = exports.UpdateBrandProfileInputSchema = exports.CreateBrandProfileInputSchema = exports.ListBrandsInputSchema = exports.BrandEntitySchema = void 0;
4
4
  const zod_openapi_1 = require("@hono/zod-openapi");
5
5
  const common_1 = require("./common");
6
6
  const constants_1 = require("../constants");
@@ -59,7 +59,7 @@ exports.ListBrandsInputSchema = zod_openapi_1.z
59
59
  .openapi({ example: 20 }),
60
60
  })
61
61
  .openapi("ListBrandsInput");
62
- exports.CreateBrandProfileSchema = zod_openapi_1.z
62
+ exports.CreateBrandProfileInputSchema = zod_openapi_1.z
63
63
  .object({
64
64
  brandName: zod_openapi_1.z
65
65
  .string()
@@ -82,7 +82,7 @@ exports.CreateBrandProfileSchema = zod_openapi_1.z
82
82
  .openapi({
83
83
  title: "create brand profile",
84
84
  });
85
- exports.UpdateBrandProfileSchema = zod_openapi_1.z
85
+ exports.UpdateBrandProfileInputSchema = zod_openapi_1.z
86
86
  .object({
87
87
  brandName: zod_openapi_1.z.string().min(1).optional().openapi({ example: "Acme Studio" }),
88
88
  bio: zod_openapi_1.z.string().max(210).optional().openapi({
@@ -100,6 +100,6 @@ exports.GetBrandParamsSchema = zod_openapi_1.z.object({
100
100
  value: common_1.CuidSchema,
101
101
  });
102
102
  exports.GetBrandQuerySchema = common_1.ProfileIdentifierSchema;
103
- exports.CreateBrandEndpointResponseSchema = exports.BrandEntitySchema;
104
- exports.GetBrandEndpointResponseSchema = exports.BrandEntitySchema;
105
- exports.UpdateBrandEndpointResponseSchema = exports.BrandEntitySchema;
103
+ exports.CreateBrandOutputSchema = exports.BrandEntitySchema;
104
+ exports.GetBrandOutputSchema = exports.BrandEntitySchema;
105
+ exports.UpdateBrandOutputSchema = exports.BrandEntitySchema;
@@ -29,7 +29,7 @@ export declare const ListCreativesInputSchema: z.ZodObject<{
29
29
  page: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
30
30
  perPage: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
31
31
  }, z.core.$strip>;
32
- export declare const CreateCreativeProfileSchema: z.ZodObject<{
32
+ export declare const CreateCreativeProfileInputSchema: z.ZodObject<{
33
33
  experienceLevel: z.ZodDefault<z.ZodEnum<{
34
34
  readonly YEAR_0_1: "0-1 year";
35
35
  readonly YEAR_1_3: "1-3 years";
@@ -40,7 +40,7 @@ export declare const CreateCreativeProfileSchema: z.ZodObject<{
40
40
  location: z.ZodDefault<z.ZodOptional<z.ZodString>>;
41
41
  disciplineSlugs: z.ZodDefault<z.ZodArray<z.ZodString>>;
42
42
  }, z.core.$strip>;
43
- export declare const UpdateCreativeProfileSchema: z.ZodObject<{
43
+ export declare const UpdateCreativeProfileInputSchema: z.ZodObject<{
44
44
  experienceLevel: z.ZodOptional<z.ZodEnum<{
45
45
  readonly YEAR_0_1: "0-1 year";
46
46
  readonly YEAR_1_3: "1-3 years";
@@ -61,7 +61,7 @@ export declare const GetCreativeQuerySchema: z.ZodObject<{
61
61
  userId: "userId";
62
62
  }>>>;
63
63
  }, z.core.$strip>;
64
- export declare const CreateCreativeEndpointResponseSchema: z.ZodObject<{
64
+ export declare const CreateCreativeOutputSchema: z.ZodObject<{
65
65
  id: z.ZodCUID2;
66
66
  userId: z.ZodCUID2;
67
67
  bio: z.ZodOptional<z.ZodString>;
@@ -77,7 +77,7 @@ export declare const CreateCreativeEndpointResponseSchema: z.ZodObject<{
77
77
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
78
78
  updatedAt: z.ZodCoercedDate<unknown>;
79
79
  }, z.core.$strip>;
80
- export declare const GetCreativeEndpointResponseSchema: z.ZodObject<{
80
+ export declare const GetCreativeOutputSchema: z.ZodObject<{
81
81
  id: z.ZodCUID2;
82
82
  userId: z.ZodCUID2;
83
83
  bio: z.ZodOptional<z.ZodString>;
@@ -93,7 +93,7 @@ export declare const GetCreativeEndpointResponseSchema: z.ZodObject<{
93
93
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
94
94
  updatedAt: z.ZodCoercedDate<unknown>;
95
95
  }, z.core.$strip>;
96
- export declare const UpdateCreativeEndpointResponseSchema: z.ZodObject<{
96
+ export declare const UpdateCreativeOutputSchema: z.ZodObject<{
97
97
  id: z.ZodCUID2;
98
98
  userId: z.ZodCUID2;
99
99
  bio: z.ZodOptional<z.ZodString>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateCreativeEndpointResponseSchema = exports.GetCreativeEndpointResponseSchema = exports.CreateCreativeEndpointResponseSchema = exports.GetCreativeQuerySchema = exports.GetCreativeParamsSchema = exports.UpdateCreativeProfileSchema = exports.CreateCreativeProfileSchema = exports.ListCreativesInputSchema = exports.CreativeEntitySchema = void 0;
3
+ exports.UpdateCreativeOutputSchema = exports.GetCreativeOutputSchema = exports.CreateCreativeOutputSchema = exports.GetCreativeQuerySchema = exports.GetCreativeParamsSchema = exports.UpdateCreativeProfileInputSchema = exports.CreateCreativeProfileInputSchema = exports.ListCreativesInputSchema = exports.CreativeEntitySchema = void 0;
4
4
  const zod_openapi_1 = require("@hono/zod-openapi");
5
5
  const constants_1 = require("../constants");
6
6
  const common_1 = require("./common");
@@ -15,7 +15,7 @@ exports.CreativeEntitySchema = zod_openapi_1.z
15
15
  experienceLevel: zod_openapi_1.z
16
16
  .enum(Object.values(constants_1.EXPERIENCE_LEVELS))
17
17
  .optional()
18
- .openapi({ example: "SENIOR" }),
18
+ .openapi({ example: "YEAR_0_1" }),
19
19
  tags: zod_openapi_1.z
20
20
  .array(zod_openapi_1.z.string())
21
21
  .optional()
@@ -58,7 +58,7 @@ exports.ListCreativesInputSchema = zod_openapi_1.z
58
58
  .openapi({ example: 20 }),
59
59
  })
60
60
  .openapi("ListCreativesInput");
61
- exports.CreateCreativeProfileSchema = zod_openapi_1.z
61
+ exports.CreateCreativeProfileInputSchema = zod_openapi_1.z
62
62
  .object({
63
63
  experienceLevel: zod_openapi_1.z
64
64
  .enum(constants_1.EXPERIENCE_LEVELS)
@@ -85,7 +85,7 @@ exports.CreateCreativeProfileSchema = zod_openapi_1.z
85
85
  .openapi({
86
86
  title: "create creative profile",
87
87
  });
88
- exports.UpdateCreativeProfileSchema = zod_openapi_1.z
88
+ exports.UpdateCreativeProfileInputSchema = zod_openapi_1.z
89
89
  .object({
90
90
  experienceLevel: zod_openapi_1.z
91
91
  .enum(constants_1.EXPERIENCE_LEVELS)
@@ -118,6 +118,6 @@ exports.GetCreativeParamsSchema = zod_openapi_1.z.object({
118
118
  value: common_1.CuidSchema,
119
119
  });
120
120
  exports.GetCreativeQuerySchema = common_1.ProfileIdentifierSchema;
121
- exports.CreateCreativeEndpointResponseSchema = exports.CreativeEntitySchema;
122
- exports.GetCreativeEndpointResponseSchema = exports.CreativeEntitySchema;
123
- exports.UpdateCreativeEndpointResponseSchema = exports.CreativeEntitySchema;
121
+ exports.CreateCreativeOutputSchema = exports.CreativeEntitySchema;
122
+ exports.GetCreativeOutputSchema = exports.CreativeEntitySchema;
123
+ exports.UpdateCreativeOutputSchema = exports.CreativeEntitySchema;
@@ -0,0 +1,33 @@
1
+ import { z } from "@hono/zod-openapi";
2
+ export declare const DisciplineEntitySchema: z.ZodObject<{
3
+ slug: z.ZodString;
4
+ name: z.ZodString;
5
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ }, z.core.$strip>;
7
+ export declare const DisciplineUpdateOutputEntitySchema: z.ZodObject<{
8
+ slug: z.ZodString;
9
+ }, z.core.$strip>;
10
+ export declare const CreateDisciplinesInputSchema: z.ZodObject<{
11
+ disciplines: z.ZodArray<z.ZodObject<{
12
+ name: z.ZodString;
13
+ tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>;
16
+ export declare const SlugSchema: z.ZodObject<{
17
+ slug: z.ZodString;
18
+ }, z.core.$strip>;
19
+ export declare const GetDisciplinesInputSchema: z.ZodObject<{
20
+ withTags: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"true">, z.ZodLiteral<"false">]>>>;
21
+ getDefault: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"true">, z.ZodLiteral<"false">]>>>;
22
+ slugs: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strip>;
24
+ export declare const CreateDisciplinesOutputSchema: z.ZodObject<{
25
+ disciplines: z.ZodArray<z.ZodString>;
26
+ }, z.core.$strip>;
27
+ export declare const GetDisciplinesOutputSchema: z.ZodObject<{
28
+ disciplines: z.ZodArray<z.ZodObject<{
29
+ slug: z.ZodString;
30
+ name: z.ZodString;
31
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
32
+ }, z.core.$strip>>;
33
+ }, z.core.$strip>;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetDisciplinesOutputSchema = exports.CreateDisciplinesOutputSchema = exports.GetDisciplinesInputSchema = exports.SlugSchema = exports.CreateDisciplinesInputSchema = exports.DisciplineUpdateOutputEntitySchema = exports.DisciplineEntitySchema = void 0;
4
+ const zod_openapi_1 = require("@hono/zod-openapi");
5
+ exports.DisciplineEntitySchema = zod_openapi_1.z
6
+ .object({
7
+ slug: zod_openapi_1.z.string().openapi({ example: "digital-art" }),
8
+ name: zod_openapi_1.z.string().openapi({ example: "Digital Art" }),
9
+ tags: zod_openapi_1.z
10
+ .array(zod_openapi_1.z.string().openapi({ example: "illustration" }))
11
+ .optional()
12
+ .openapi({
13
+ example: ["illustration", "concept-art"],
14
+ }),
15
+ })
16
+ .openapi({ title: "DisciplineEntity" });
17
+ exports.DisciplineUpdateOutputEntitySchema = zod_openapi_1.z
18
+ .object({
19
+ slug: zod_openapi_1.z.string().openapi({ example: "digital-art" }),
20
+ })
21
+ .openapi({ title: "DisciplineUpdateOutputEntity" });
22
+ exports.CreateDisciplinesInputSchema = zod_openapi_1.z
23
+ .object({
24
+ disciplines: zod_openapi_1.z
25
+ .array(zod_openapi_1.z.object({
26
+ name: zod_openapi_1.z.string().max(128).openapi({
27
+ example: "Mathematics",
28
+ }),
29
+ tags: zod_openapi_1.z
30
+ .array(zod_openapi_1.z.string().openapi({
31
+ example: "algebra",
32
+ }))
33
+ .default([])
34
+ .openapi({
35
+ example: ["algebra", "geometry"],
36
+ }),
37
+ }))
38
+ .openapi({
39
+ description: "Array of disciplines to upsert.",
40
+ example: [
41
+ {
42
+ name: "Mathematics",
43
+ tags: ["algebra", "geometry"],
44
+ },
45
+ {
46
+ name: "Physics",
47
+ tags: ["mechanics", "optics"],
48
+ },
49
+ ],
50
+ }),
51
+ })
52
+ .openapi({
53
+ description: "Schema for upserting multiple disciplines.",
54
+ });
55
+ exports.SlugSchema = zod_openapi_1.z.object({
56
+ slug: zod_openapi_1.z.string().max(128).openapi({
57
+ example: "mathematics",
58
+ }),
59
+ });
60
+ exports.GetDisciplinesInputSchema = zod_openapi_1.z
61
+ .object({
62
+ withTags: zod_openapi_1.z
63
+ .union([zod_openapi_1.z.literal("true"), zod_openapi_1.z.literal("false")])
64
+ .optional()
65
+ .default("false")
66
+ .openapi({
67
+ description: "Whether to include tags in the response.",
68
+ example: "true",
69
+ }),
70
+ getDefault: zod_openapi_1.z
71
+ .union([zod_openapi_1.z.literal("true"), zod_openapi_1.z.literal("false")])
72
+ .optional()
73
+ .default("false")
74
+ .openapi({
75
+ description: "Fetch the default list of disciplines (non user-added disciplines)",
76
+ }),
77
+ slugs: zod_openapi_1.z.string().optional().openapi({
78
+ description: "Comma-separated list of discipline slugs to filter by.",
79
+ example: "mathematics,physics",
80
+ }),
81
+ })
82
+ .openapi({
83
+ description: "Query parameters for fetching multiple disciplines.",
84
+ });
85
+ exports.CreateDisciplinesOutputSchema = zod_openapi_1.z.object({
86
+ disciplines: zod_openapi_1.z.array(zod_openapi_1.z.string()),
87
+ });
88
+ exports.GetDisciplinesOutputSchema = zod_openapi_1.z.object({
89
+ disciplines: zod_openapi_1.z.array(exports.DisciplineEntitySchema),
90
+ });
@@ -4,3 +4,4 @@ export * from "./creative";
4
4
  export * from "./user";
5
5
  export * from "./project";
6
6
  export * from "./investor";
7
+ export * from "./discipline";
@@ -20,3 +20,4 @@ __exportStar(require("./creative"), exports);
20
20
  __exportStar(require("./user"), exports);
21
21
  __exportStar(require("./project"), exports);
22
22
  __exportStar(require("./investor"), exports);
23
+ __exportStar(require("./discipline"), exports);
@@ -48,7 +48,7 @@ export declare const InvestorEntitySchema: z.ZodObject<{
48
48
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
49
49
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
50
50
  }, z.core.$strip>;
51
- export declare const CreateInvestorProfileSchema: z.ZodObject<{
51
+ export declare const CreateInvestorProfileInputSchema: z.ZodObject<{
52
52
  bio: z.ZodDefault<z.ZodOptional<z.ZodString>>;
53
53
  websiteURL: z.ZodOptional<z.ZodString>;
54
54
  experienceLevel: z.ZodDefault<z.ZodEnum<{
@@ -59,7 +59,7 @@ export declare const CreateInvestorProfileSchema: z.ZodObject<{
59
59
  }>>;
60
60
  location: z.ZodString;
61
61
  }, z.core.$strip>;
62
- export declare const UpdateInvestorProfileSchema: z.ZodObject<{
62
+ export declare const UpdateInvestorProfileInputSchema: z.ZodObject<{
63
63
  bio: z.ZodOptional<z.ZodString>;
64
64
  websiteURL: z.ZodOptional<z.ZodString>;
65
65
  experienceLevel: z.ZodOptional<z.ZodEnum<{
@@ -127,7 +127,7 @@ export declare const GetInvestorQuerySchema: z.ZodObject<{
127
127
  userId: "userId";
128
128
  }>>>;
129
129
  }, z.core.$strip>;
130
- export declare const CreateInvestorEndpointResponseSchema: z.ZodObject<{
130
+ export declare const CreateInvestorOutputSchema: z.ZodObject<{
131
131
  id: z.ZodCUID2;
132
132
  userId: z.ZodCUID2;
133
133
  bio: z.ZodOptional<z.ZodString>;
@@ -176,7 +176,7 @@ export declare const CreateInvestorEndpointResponseSchema: z.ZodObject<{
176
176
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
177
177
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
178
178
  }, z.core.$strip>;
179
- export declare const GetInvestorEndpointResponseSchema: z.ZodObject<{
179
+ export declare const GetInvestorOutputSchema: z.ZodObject<{
180
180
  id: z.ZodCUID2;
181
181
  userId: z.ZodCUID2;
182
182
  bio: z.ZodOptional<z.ZodString>;
@@ -225,7 +225,7 @@ export declare const GetInvestorEndpointResponseSchema: z.ZodObject<{
225
225
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
226
226
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
227
227
  }, z.core.$strip>;
228
- export declare const UpdateInvestorEndpointResponseSchema: z.ZodObject<{
228
+ export declare const UpdateInvestorOutputSchema: z.ZodObject<{
229
229
  id: z.ZodCUID2;
230
230
  userId: z.ZodCUID2;
231
231
  bio: z.ZodOptional<z.ZodString>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateInvestorEndpointResponseSchema = exports.GetInvestorEndpointResponseSchema = exports.CreateInvestorEndpointResponseSchema = exports.GetInvestorQuerySchema = exports.GetInvestorParamsSchema = exports.ListInvestorsInputSchema = exports.UpdateInvestorProfileSchema = exports.CreateInvestorProfileSchema = exports.InvestorEntitySchema = void 0;
3
+ exports.UpdateInvestorOutputSchema = exports.GetInvestorOutputSchema = exports.CreateInvestorOutputSchema = exports.GetInvestorQuerySchema = exports.GetInvestorParamsSchema = exports.ListInvestorsInputSchema = exports.UpdateInvestorProfileInputSchema = exports.CreateInvestorProfileInputSchema = exports.InvestorEntitySchema = void 0;
4
4
  const zod_openapi_1 = require("@hono/zod-openapi");
5
5
  const constants_1 = require("../constants");
6
6
  const common_1 = require("./common");
@@ -47,7 +47,7 @@ exports.InvestorEntitySchema = zod_openapi_1.z
47
47
  .openapi({ example: "2025-10-13T09:00:00.000Z" }),
48
48
  })
49
49
  .openapi("InvestorEntity");
50
- exports.CreateInvestorProfileSchema = zod_openapi_1.z
50
+ exports.CreateInvestorProfileInputSchema = zod_openapi_1.z
51
51
  .object({
52
52
  bio: zod_openapi_1.z.string().max(210).optional().default("").openapi({
53
53
  example: "Angel investor backing early-stage African startups.",
@@ -68,7 +68,7 @@ exports.CreateInvestorProfileSchema = zod_openapi_1.z
68
68
  .openapi({
69
69
  title: "Create Investor Profile",
70
70
  });
71
- exports.UpdateInvestorProfileSchema = zod_openapi_1.z
71
+ exports.UpdateInvestorProfileInputSchema = zod_openapi_1.z
72
72
  .object({
73
73
  bio: zod_openapi_1.z.string().max(210).optional().openapi({
74
74
  example: "Seasoned venture capitalist with a focus on healthtech.",
@@ -147,6 +147,6 @@ exports.GetInvestorParamsSchema = zod_openapi_1.z.object({
147
147
  value: common_1.CuidSchema,
148
148
  });
149
149
  exports.GetInvestorQuerySchema = common_1.ProfileIdentifierSchema;
150
- exports.CreateInvestorEndpointResponseSchema = exports.InvestorEntitySchema;
151
- exports.GetInvestorEndpointResponseSchema = exports.InvestorEntitySchema;
152
- exports.UpdateInvestorEndpointResponseSchema = exports.InvestorEntitySchema;
150
+ exports.CreateInvestorOutputSchema = exports.InvestorEntitySchema;
151
+ exports.GetInvestorOutputSchema = exports.InvestorEntitySchema;
152
+ exports.UpdateInvestorOutputSchema = exports.InvestorEntitySchema;
@@ -153,6 +153,7 @@ export declare const UserWithProjectsEntitySchema: z.ZodObject<{
153
153
  userId: z.ZodCUID2;
154
154
  description: z.ZodOptional<z.ZodString>;
155
155
  title: z.ZodString;
156
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
156
157
  createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
157
158
  updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
158
159
  url: z.ZodOptional<z.ZodString>;
@@ -169,7 +170,6 @@ export declare const UserWithProjectsEntitySchema: z.ZodObject<{
169
170
  INVESTOR: "INVESTOR";
170
171
  ADMIN: "ADMIN";
171
172
  }>;
172
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
173
173
  isFeatured: z.ZodOptional<z.ZodBoolean>;
174
174
  startDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
175
175
  endDate: z.ZodOptional<z.ZodCoercedDate<unknown>>;
@@ -1,15 +1,15 @@
1
1
  import { z } from "@hono/zod-openapi";
2
- import { BrandEntitySchema, CreateBrandEndpointResponseSchema, CreateBrandProfileSchema, GetBrandEndpointResponseSchema, GetBrandParamsSchema, GetBrandQuerySchema, ListBrandsInputSchema, UpdateBrandEndpointResponseSchema, UpdateBrandProfileSchema } from "../schemas";
2
+ import { BrandEntitySchema, CreateBrandOutputSchema, CreateBrandProfileInputSchema, GetBrandOutputSchema, GetBrandParamsSchema, GetBrandQuerySchema, ListBrandsInputSchema, UpdateBrandOutputSchema, UpdateBrandProfileInputSchema } from "../schemas";
3
3
  export type BrandEntity = z.infer<typeof BrandEntitySchema>;
4
4
  export type ListBrandsInput = z.infer<typeof ListBrandsInputSchema>;
5
- export type CreateBrandDto = z.infer<typeof CreateBrandProfileSchema> & {
5
+ export type CreateBrandInput = z.infer<typeof CreateBrandProfileInputSchema> & {
6
6
  userId: string;
7
7
  };
8
- export type UpdateBrandDto = z.infer<typeof UpdateBrandProfileSchema> & {
8
+ export type UpdateBrandInput = z.infer<typeof UpdateBrandProfileInputSchema> & {
9
9
  userId: string;
10
10
  };
11
11
  export type GetBrandParams = z.infer<typeof GetBrandParamsSchema>;
12
12
  export type GetBrandQuery = z.infer<typeof GetBrandQuerySchema>;
13
- export type CreateBrandEndpointResponse = z.infer<typeof CreateBrandEndpointResponseSchema>;
14
- export type GetBrandEndpointResponse = z.infer<typeof GetBrandEndpointResponseSchema>;
15
- export type UpdateBrandEndpointResponse = z.infer<typeof UpdateBrandEndpointResponseSchema>;
13
+ export type CreateBrandOutput = z.infer<typeof CreateBrandOutputSchema>;
14
+ export type GetBrandOutput = z.infer<typeof GetBrandOutputSchema>;
15
+ export type UpdateBrandOutput = z.infer<typeof UpdateBrandOutputSchema>;
@@ -1,15 +1,15 @@
1
1
  import { z } from "@hono/zod-openapi";
2
- import { CreateCreativeEndpointResponseSchema, CreateCreativeProfileSchema, CreativeEntitySchema, GetCreativeEndpointResponseSchema, GetCreativeParamsSchema, GetCreativeQuerySchema, ListCreativesInputSchema, UpdateCreativeEndpointResponseSchema, UpdateCreativeProfileSchema } from "../schemas";
2
+ import { CreateCreativeOutputSchema, CreateCreativeProfileInputSchema, CreativeEntitySchema, GetCreativeOutputSchema, GetCreativeParamsSchema, GetCreativeQuerySchema, ListCreativesInputSchema, UpdateCreativeOutputSchema, UpdateCreativeProfileInputSchema } from "../schemas";
3
3
  export type CreativeEntity = z.infer<typeof CreativeEntitySchema>;
4
- export type ListCreativesDto = z.infer<typeof ListCreativesInputSchema>;
5
- export type CreateCreativeDto = z.infer<typeof CreateCreativeProfileSchema> & {
4
+ export type ListCreativesInput = z.infer<typeof ListCreativesInputSchema>;
5
+ export type CreateCreativeInput = z.infer<typeof CreateCreativeProfileInputSchema> & {
6
6
  userId: string;
7
7
  };
8
- export type UpdateCreativeDto = z.infer<typeof UpdateCreativeProfileSchema> & {
8
+ export type UpdateCreativeInput = z.infer<typeof UpdateCreativeProfileInputSchema> & {
9
9
  userId: string;
10
10
  };
11
11
  export type GetCreativeParams = z.infer<typeof GetCreativeParamsSchema>;
12
12
  export type GetCreativeQuery = z.infer<typeof GetCreativeQuerySchema>;
13
- export type CreateCreativeEndpointResponse = z.infer<typeof CreateCreativeEndpointResponseSchema>;
14
- export type GetCreativeEndpointResponse = z.infer<typeof GetCreativeEndpointResponseSchema>;
15
- export type UpdateCreativeEndpointResponse = z.infer<typeof UpdateCreativeEndpointResponseSchema>;
13
+ export type CreateCreativeOutput = z.infer<typeof CreateCreativeOutputSchema>;
14
+ export type GetCreativeOutput = z.infer<typeof GetCreativeOutputSchema>;
15
+ export type UpdateCreativeOutput = z.infer<typeof UpdateCreativeOutputSchema>;
@@ -1,8 +1,11 @@
1
- export type DisciplineEntity = {
2
- slug: string;
3
- name: string;
4
- tags?: string[];
5
- };
6
- export type DisciplineUpdateOutputEntity = {
7
- slug: string;
8
- };
1
+ import { z } from "@hono/zod-openapi";
2
+ import { CreateDisciplinesInputSchema, CreateDisciplinesOutputSchema, DisciplineEntitySchema, DisciplineUpdateOutputEntitySchema, GetDisciplinesInputSchema, GetDisciplinesOutputSchema, SlugSchema } from "../schemas/discipline";
3
+ export type DisciplineEntity = z.infer<typeof DisciplineEntitySchema>;
4
+ export type DisciplineUpdateOutputEntity = z.infer<typeof DisciplineUpdateOutputEntitySchema>;
5
+ export type CreateDisciplinesInput = z.infer<typeof CreateDisciplinesInputSchema>;
6
+ export type SlugInput = z.infer<typeof SlugSchema>;
7
+ export type GetMultipleDisciplinesQuery = z.infer<typeof GetDisciplinesInputSchema>;
8
+ export type DeleteDisciplineInput = SlugInput;
9
+ export type DeleteDisciplineOutput = SlugInput;
10
+ export type CreateDisciplinesOutput = z.infer<typeof CreateDisciplinesOutputSchema>;
11
+ export type GetDisciplinesOutput = z.infer<typeof GetDisciplinesOutputSchema>;
@@ -1,15 +1,15 @@
1
1
  import { z } from "@hono/zod-openapi";
2
- import { CreateInvestorEndpointResponseSchema, CreateInvestorProfileSchema, GetInvestorEndpointResponseSchema, GetInvestorParamsSchema, GetInvestorQuerySchema, InvestorEntitySchema, ListInvestorsInputSchema, UpdateInvestorEndpointResponseSchema, UpdateInvestorProfileSchema } from "../schemas/investor";
2
+ import { CreateInvestorOutputSchema, CreateInvestorProfileInputSchema, GetInvestorOutputSchema, GetInvestorParamsSchema, GetInvestorQuerySchema, InvestorEntitySchema, ListInvestorsInputSchema, UpdateInvestorOutputSchema, UpdateInvestorProfileInputSchema } from "../schemas/investor";
3
3
  export type InvestorEntity = z.infer<typeof InvestorEntitySchema>;
4
4
  export type ListInvestorsInput = z.infer<typeof ListInvestorsInputSchema>;
5
- export type CreateInvestorDto = z.infer<typeof CreateInvestorProfileSchema> & {
5
+ export type CreateInvestorInput = z.infer<typeof CreateInvestorProfileInputSchema> & {
6
6
  userId: string;
7
7
  };
8
- export type UpdateInvestorDto = z.infer<typeof UpdateInvestorProfileSchema> & {
8
+ export type UpdateInvestorInput = z.infer<typeof UpdateInvestorProfileInputSchema> & {
9
9
  userId: string;
10
10
  };
11
11
  export type GetInvestorParams = z.infer<typeof GetInvestorParamsSchema>;
12
12
  export type GetInvestorQuery = z.infer<typeof GetInvestorQuerySchema>;
13
- export type CreateInvestorEndpointResponse = z.infer<typeof CreateInvestorEndpointResponseSchema>;
14
- export type GetInvestorEndpointResponse = z.infer<typeof GetInvestorEndpointResponseSchema>;
15
- export type UpdateInvestorEndpointResponse = z.infer<typeof UpdateInvestorEndpointResponseSchema>;
13
+ export type CreateInvestorOutput = z.infer<typeof CreateInvestorOutputSchema>;
14
+ export type GetInvestorOutput = z.infer<typeof GetInvestorOutputSchema>;
15
+ export type UpdateInvestorOutput = z.infer<typeof UpdateInvestorOutputSchema>;
@@ -71,7 +71,7 @@ export type ProjectWithUserEntity = MinimalProject & {
71
71
  fileUrl: string;
72
72
  })[];
73
73
  } & Partial<ProjectSocialGraphEntity>;
74
- export type ListProjectsDto = {
74
+ export type ListProjectsInput = {
75
75
  query?: string;
76
76
  tags?: string[];
77
77
  clientName?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zyacreatives/shared",
3
- "version": "1.2.8",
3
+ "version": "1.3.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/constants.ts CHANGED
@@ -283,3 +283,63 @@ export const FRONTEND_API_ROUTES = {
283
283
  getProjectUser: (projectId: string) => `${projectId}/user`,
284
284
  },
285
285
  } as const;
286
+
287
+ export const DEFAULT_DISCIPLINES = [
288
+ { name: "Painting", slug: "painting" },
289
+ { name: "Drawing", slug: "drawing" },
290
+ { name: "Sculpture", slug: "sculpture" },
291
+ { name: "Printmaking", slug: "printmaking" },
292
+ { name: "Photography", slug: "photography" },
293
+ { name: "Illustration", slug: "illustration" },
294
+ { name: "Installation Art", slug: "installation_art" },
295
+ { name: "Mixed Media Art", slug: "mixed_media_art" },
296
+ { name: "Conceptual Art", slug: "conceptual_art" },
297
+ { name: "Graphic Design", slug: "graphic_design" },
298
+ { name: "Fashion Design", slug: "fashion_design" },
299
+ { name: "Interior Design", slug: "interior_design" },
300
+ { name: "Industrial / Product Design", slug: "industrial_product_design" },
301
+ { name: "UX Design", slug: "ux_design" },
302
+ { name: "UI Design", slug: "ui_design" },
303
+ { name: "Motion Design", slug: "motion_design" },
304
+ { name: "Textile Design", slug: "textile_design" },
305
+ { name: "Jewelry Design", slug: "jewelry_design" },
306
+ { name: "Furniture Design", slug: "furniture_design" },
307
+ { name: "Architecture", slug: "architecture" },
308
+ { name: "Web Design", slug: "web_design" },
309
+ { name: "Exhibition Design", slug: "exhibition_design" },
310
+ { name: "Design Research", slug: "design_research" },
311
+ { name: "Film / Video Production", slug: "film_video_production" },
312
+ { name: "Animation", slug: "animation" },
313
+ { name: "Game Design", slug: "game_design" },
314
+ { name: "Digital Media Art", slug: "digital_media_art" },
315
+ { name: "Advertising / Art Direction", slug: "advertising_art_direction" },
316
+ { name: "Copywriting", slug: "copywriting" },
317
+ { name: "Content Strategy", slug: "content_strategy" },
318
+ {
319
+ name: "Social Media Content Creation",
320
+ slug: "social_media_content_creation",
321
+ },
322
+ { name: "Podcasting", slug: "podcasting" },
323
+ { name: "Journalism", slug: "journalism" },
324
+ { name: "Creative Coding", slug: "creative_coding" },
325
+ {
326
+ name: "Augmented Reality (AR) Design",
327
+ slug: "augmented_reality_ar_design",
328
+ },
329
+ { name: "Virtual Reality (VR) Design", slug: "virtual_reality_vr_design" },
330
+ { name: "Interaction Design", slug: "interaction_design" },
331
+ { name: "Music", slug: "music" },
332
+ { name: "Dance", slug: "dance" },
333
+ { name: "Theatre / Acting", slug: "theatre_acting" },
334
+ {
335
+ name: "Spoken Word / Performance Poetry",
336
+ slug: "spoken_word_performance_poetry",
337
+ },
338
+ { name: "DJ", slug: "dj" },
339
+ { name: "Sound Design", slug: "sound_design" },
340
+ { name: "Voice Acting", slug: "voice_acting" },
341
+ { name: "Creative Writing", slug: "creative_writing" },
342
+ { name: "Comics / Graphic Novels", slug: "comics_graphic_novels" },
343
+ { name: "Curation", slug: "curation" },
344
+ { name: "Creative Entrepreneurship", slug: "creative_entrepreneurship" },
345
+ ];
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./types/index";
2
2
  export * from "./constants";
3
3
  export * from "./schemas/index";
4
+ export * from "./utils/slugify";
@@ -1,6 +1,5 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import { CuidSchema, ProfileIdentifierSchema } from "./common";
3
- import { MinimalUserSchema } from "./user";
4
3
  import { EXPERIENCE_LEVELS, ExperienceLevel } from "../constants";
5
4
 
6
5
  export const BrandEntitySchema = z
@@ -68,7 +67,7 @@ export const ListBrandsInputSchema = z
68
67
  })
69
68
  .openapi("ListBrandsInput");
70
69
 
71
- export const CreateBrandProfileSchema = z
70
+ export const CreateBrandProfileInputSchema = z
72
71
  .object({
73
72
  brandName: z
74
73
  .string()
@@ -92,7 +91,7 @@ export const CreateBrandProfileSchema = z
92
91
  title: "create brand profile",
93
92
  });
94
93
 
95
- export const UpdateBrandProfileSchema = z
94
+ export const UpdateBrandProfileInputSchema = z
96
95
  .object({
97
96
  brandName: z.string().min(1).optional().openapi({ example: "Acme Studio" }),
98
97
  bio: z.string().max(210).optional().openapi({
@@ -113,8 +112,8 @@ export const GetBrandParamsSchema = z.object({
113
112
 
114
113
  export const GetBrandQuerySchema = ProfileIdentifierSchema;
115
114
 
116
- export const CreateBrandEndpointResponseSchema = BrandEntitySchema;
115
+ export const CreateBrandOutputSchema = BrandEntitySchema;
117
116
 
118
- export const GetBrandEndpointResponseSchema = BrandEntitySchema;
117
+ export const GetBrandOutputSchema = BrandEntitySchema;
119
118
 
120
- export const UpdateBrandEndpointResponseSchema = BrandEntitySchema;
119
+ export const UpdateBrandOutputSchema = BrandEntitySchema;
@@ -1,7 +1,6 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import { EXPERIENCE_LEVELS, ExperienceLevel } from "../constants";
3
3
  import { CuidSchema, ProfileIdentifierSchema } from "./common";
4
- import { MinimalUserSchema } from "./user";
5
4
 
6
5
  export const CreativeEntitySchema = z
7
6
  .object({
@@ -19,7 +18,7 @@ export const CreativeEntitySchema = z
19
18
  ]
20
19
  )
21
20
  .optional()
22
- .openapi({ example: "SENIOR" }),
21
+ .openapi({ example: "YEAR_0_1" }),
23
22
  tags: z
24
23
  .array(z.string())
25
24
  .optional()
@@ -71,7 +70,7 @@ export const ListCreativesInputSchema = z
71
70
  })
72
71
  .openapi("ListCreativesInput");
73
72
 
74
- export const CreateCreativeProfileSchema = z
73
+ export const CreateCreativeProfileInputSchema = z
75
74
  .object({
76
75
  experienceLevel: z
77
76
  .enum(EXPERIENCE_LEVELS)
@@ -99,7 +98,7 @@ export const CreateCreativeProfileSchema = z
99
98
  title: "create creative profile",
100
99
  });
101
100
 
102
- export const UpdateCreativeProfileSchema = z
101
+ export const UpdateCreativeProfileInputSchema = z
103
102
  .object({
104
103
  experienceLevel: z
105
104
  .enum(EXPERIENCE_LEVELS)
@@ -135,8 +134,8 @@ export const GetCreativeParamsSchema = z.object({
135
134
 
136
135
  export const GetCreativeQuerySchema = ProfileIdentifierSchema;
137
136
 
138
- export const CreateCreativeEndpointResponseSchema = CreativeEntitySchema;
137
+ export const CreateCreativeOutputSchema = CreativeEntitySchema;
139
138
 
140
- export const GetCreativeEndpointResponseSchema = CreativeEntitySchema
139
+ export const GetCreativeOutputSchema = CreativeEntitySchema
141
140
 
142
- export const UpdateCreativeEndpointResponseSchema = CreativeEntitySchema;
141
+ export const UpdateCreativeOutputSchema = CreativeEntitySchema;
@@ -0,0 +1,101 @@
1
+ import { z } from "@hono/zod-openapi";
2
+
3
+ export const DisciplineEntitySchema = z
4
+ .object({
5
+ slug: z.string().openapi({ example: "digital-art" }),
6
+ name: z.string().openapi({ example: "Digital Art" }),
7
+ tags: z
8
+ .array(z.string().openapi({ example: "illustration" }))
9
+ .optional()
10
+ .openapi({
11
+ example: ["illustration", "concept-art"],
12
+ }),
13
+ })
14
+ .openapi({ title: "DisciplineEntity" });
15
+
16
+ export const DisciplineUpdateOutputEntitySchema = z
17
+ .object({
18
+ slug: z.string().openapi({ example: "digital-art" }),
19
+ })
20
+ .openapi({ title: "DisciplineUpdateOutputEntity" });
21
+
22
+ export const CreateDisciplinesInputSchema = z
23
+ .object({
24
+ disciplines: z
25
+ .array(
26
+ z.object({
27
+ name: z.string().max(128).openapi({
28
+ example: "Mathematics",
29
+ }),
30
+ tags: z
31
+ .array(
32
+ z.string().openapi({
33
+ example: "algebra",
34
+ })
35
+ )
36
+ .default([])
37
+ .openapi({
38
+ example: ["algebra", "geometry"],
39
+ }),
40
+ })
41
+ )
42
+ .openapi({
43
+ description: "Array of disciplines to upsert.",
44
+ example: [
45
+ {
46
+ name: "Mathematics",
47
+ tags: ["algebra", "geometry"],
48
+ },
49
+ {
50
+ name: "Physics",
51
+ tags: ["mechanics", "optics"],
52
+ },
53
+ ],
54
+ }),
55
+ })
56
+ .openapi({
57
+ description: "Schema for upserting multiple disciplines.",
58
+ });
59
+
60
+ export const SlugSchema = z.object({
61
+ slug: z.string().max(128).openapi({
62
+ example: "mathematics",
63
+ }),
64
+ });
65
+
66
+ export const GetDisciplinesInputSchema = z
67
+ .object({
68
+ withTags: z
69
+ .union([z.literal("true"), z.literal("false")])
70
+ .optional()
71
+ .default("false")
72
+ .openapi({
73
+ description: "Whether to include tags in the response.",
74
+ example: "true",
75
+ }),
76
+ getDefault: z
77
+ .union([z.literal("true"), z.literal("false")])
78
+ .optional()
79
+ .default("false")
80
+ .openapi({
81
+ description:
82
+ "Fetch the default list of disciplines (non user-added disciplines)",
83
+ }),
84
+ slugs: z.string().optional().openapi({
85
+ description: "Comma-separated list of discipline slugs to filter by.",
86
+ example: "mathematics,physics",
87
+ }),
88
+ })
89
+ .openapi({
90
+ description: "Query parameters for fetching multiple disciplines.",
91
+ });
92
+
93
+
94
+ export const CreateDisciplinesOutputSchema = z.object({
95
+ disciplines: z.array(z.string()),
96
+ });
97
+
98
+ export const GetDisciplinesOutputSchema = z.object({
99
+ disciplines: z.array(DisciplineEntitySchema),
100
+ });
101
+
@@ -4,3 +4,4 @@ export * from "./creative";
4
4
  export * from "./user";
5
5
  export * from "./project";
6
6
  export * from "./investor";
7
+ export * from "./discipline";
@@ -68,7 +68,7 @@ export const InvestorEntitySchema = z
68
68
  })
69
69
  .openapi("InvestorEntity");
70
70
 
71
- export const CreateInvestorProfileSchema = z
71
+ export const CreateInvestorProfileInputSchema = z
72
72
  .object({
73
73
  bio: z.string().max(210).optional().default("").openapi({
74
74
  example: "Angel investor backing early-stage African startups.",
@@ -95,7 +95,7 @@ export const CreateInvestorProfileSchema = z
95
95
  title: "Create Investor Profile",
96
96
  });
97
97
 
98
- export const UpdateInvestorProfileSchema = z
98
+ export const UpdateInvestorProfileInputSchema = z
99
99
  .object({
100
100
  bio: z.string().max(210).optional().openapi({
101
101
  example: "Seasoned venture capitalist with a focus on healthtech.",
@@ -197,8 +197,8 @@ export const GetInvestorParamsSchema = z.object({
197
197
 
198
198
  export const GetInvestorQuerySchema = ProfileIdentifierSchema;
199
199
 
200
- export const CreateInvestorEndpointResponseSchema = InvestorEntitySchema;
200
+ export const CreateInvestorOutputSchema = InvestorEntitySchema;
201
201
 
202
- export const GetInvestorEndpointResponseSchema = InvestorEntitySchema
202
+ export const GetInvestorOutputSchema = InvestorEntitySchema
203
203
 
204
- export const UpdateInvestorEndpointResponseSchema = InvestorEntitySchema;
204
+ export const UpdateInvestorOutputSchema = InvestorEntitySchema;
@@ -1,25 +1,25 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import {
3
3
  BrandEntitySchema,
4
- CreateBrandEndpointResponseSchema,
5
- CreateBrandProfileSchema,
6
- GetBrandEndpointResponseSchema,
4
+ CreateBrandOutputSchema,
5
+ CreateBrandProfileInputSchema,
6
+ GetBrandOutputSchema,
7
7
  GetBrandParamsSchema,
8
8
  GetBrandQuerySchema,
9
9
  ListBrandsInputSchema,
10
- UpdateBrandEndpointResponseSchema,
11
- UpdateBrandProfileSchema,
10
+ UpdateBrandOutputSchema,
11
+ UpdateBrandProfileInputSchema,
12
12
  } from "../schemas";
13
13
 
14
14
  export type BrandEntity = z.infer<typeof BrandEntitySchema>;
15
15
 
16
16
  export type ListBrandsInput = z.infer<typeof ListBrandsInputSchema>;
17
17
 
18
- export type CreateBrandDto = z.infer<typeof CreateBrandProfileSchema> & {
18
+ export type CreateBrandInput = z.infer<typeof CreateBrandProfileInputSchema> & {
19
19
  userId: string;
20
20
  };
21
21
 
22
- export type UpdateBrandDto = z.infer<typeof UpdateBrandProfileSchema> & {
22
+ export type UpdateBrandInput = z.infer<typeof UpdateBrandProfileInputSchema> & {
23
23
  userId: string;
24
24
  };
25
25
 
@@ -27,14 +27,14 @@ export type GetBrandParams = z.infer<typeof GetBrandParamsSchema>;
27
27
 
28
28
  export type GetBrandQuery = z.infer<typeof GetBrandQuerySchema>;
29
29
 
30
- export type CreateBrandEndpointResponse = z.infer<
31
- typeof CreateBrandEndpointResponseSchema
30
+ export type CreateBrandOutput = z.infer<
31
+ typeof CreateBrandOutputSchema
32
32
  >;
33
33
 
34
- export type GetBrandEndpointResponse = z.infer<
35
- typeof GetBrandEndpointResponseSchema
34
+ export type GetBrandOutput = z.infer<
35
+ typeof GetBrandOutputSchema
36
36
  >;
37
37
 
38
- export type UpdateBrandEndpointResponse = z.infer<
39
- typeof UpdateBrandEndpointResponseSchema
38
+ export type UpdateBrandOutput = z.infer<
39
+ typeof UpdateBrandOutputSchema
40
40
  >;
@@ -1,24 +1,24 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import {
3
- CreateCreativeEndpointResponseSchema,
4
- CreateCreativeProfileSchema,
3
+ CreateCreativeOutputSchema,
4
+ CreateCreativeProfileInputSchema,
5
5
  CreativeEntitySchema,
6
- GetCreativeEndpointResponseSchema,
6
+ GetCreativeOutputSchema,
7
7
  GetCreativeParamsSchema,
8
8
  GetCreativeQuerySchema,
9
9
  ListCreativesInputSchema,
10
- UpdateCreativeEndpointResponseSchema,
11
- UpdateCreativeProfileSchema,
10
+ UpdateCreativeOutputSchema,
11
+ UpdateCreativeProfileInputSchema,
12
12
  } from "../schemas";
13
13
 
14
14
  export type CreativeEntity = z.infer<typeof CreativeEntitySchema>;
15
15
 
16
- export type ListCreativesDto = z.infer<typeof ListCreativesInputSchema>;
16
+ export type ListCreativesInput = z.infer<typeof ListCreativesInputSchema>;
17
17
 
18
- export type CreateCreativeDto = z.infer<typeof CreateCreativeProfileSchema> & {
18
+ export type CreateCreativeInput = z.infer<typeof CreateCreativeProfileInputSchema> & {
19
19
  userId: string;
20
20
  };
21
- export type UpdateCreativeDto = z.infer<typeof UpdateCreativeProfileSchema> & {
21
+ export type UpdateCreativeInput = z.infer<typeof UpdateCreativeProfileInputSchema> & {
22
22
  userId: string;
23
23
  };
24
24
 
@@ -26,14 +26,14 @@ export type GetCreativeParams = z.infer<typeof GetCreativeParamsSchema>;
26
26
 
27
27
  export type GetCreativeQuery = z.infer<typeof GetCreativeQuerySchema>;
28
28
 
29
- export type CreateCreativeEndpointResponse = z.infer<
30
- typeof CreateCreativeEndpointResponseSchema
29
+ export type CreateCreativeOutput = z.infer<
30
+ typeof CreateCreativeOutputSchema
31
31
  >;
32
32
 
33
- export type GetCreativeEndpointResponse = z.infer<
34
- typeof GetCreativeEndpointResponseSchema
33
+ export type GetCreativeOutput = z.infer<
34
+ typeof GetCreativeOutputSchema
35
35
  >;
36
36
 
37
- export type UpdateCreativeEndpointResponse = z.infer<
38
- typeof UpdateCreativeEndpointResponseSchema
37
+ export type UpdateCreativeOutput = z.infer<
38
+ typeof UpdateCreativeOutputSchema
39
39
  >;
@@ -1,9 +1,36 @@
1
- export type DisciplineEntity = {
2
- slug: string;
3
- name: string;
4
- tags?: string[];
5
- };
6
-
7
- export type DisciplineUpdateOutputEntity = {
8
- slug: string;
9
- };
1
+ import { z } from "@hono/zod-openapi";
2
+ import {
3
+ CreateDisciplinesInputSchema,
4
+ CreateDisciplinesOutputSchema,
5
+ DisciplineEntitySchema,
6
+ DisciplineUpdateOutputEntitySchema,
7
+ GetDisciplinesInputSchema,
8
+ GetDisciplinesOutputSchema,
9
+ SlugSchema,
10
+ } from "../schemas/discipline";
11
+
12
+ export type DisciplineEntity = z.infer<typeof DisciplineEntitySchema>;
13
+
14
+ export type DisciplineUpdateOutputEntity = z.infer<
15
+ typeof DisciplineUpdateOutputEntitySchema
16
+ >;
17
+
18
+ export type CreateDisciplinesInput = z.infer<
19
+ typeof CreateDisciplinesInputSchema
20
+ >;
21
+
22
+ export type SlugInput = z.infer<typeof SlugSchema>;
23
+
24
+ export type GetMultipleDisciplinesQuery = z.infer<
25
+ typeof GetDisciplinesInputSchema
26
+ >;
27
+
28
+ export type DeleteDisciplineInput = SlugInput;
29
+
30
+ export type DeleteDisciplineOutput = SlugInput;
31
+
32
+ export type CreateDisciplinesOutput = z.infer<
33
+ typeof CreateDisciplinesOutputSchema
34
+ >;
35
+
36
+ export type GetDisciplinesOutput = z.infer<typeof GetDisciplinesOutputSchema>;
@@ -1,25 +1,25 @@
1
1
  import { z } from "@hono/zod-openapi";
2
2
  import {
3
- CreateInvestorEndpointResponseSchema,
4
- CreateInvestorProfileSchema,
5
- GetInvestorEndpointResponseSchema,
3
+ CreateInvestorOutputSchema,
4
+ CreateInvestorProfileInputSchema,
5
+ GetInvestorOutputSchema,
6
6
  GetInvestorParamsSchema,
7
7
  GetInvestorQuerySchema,
8
8
  InvestorEntitySchema,
9
9
  ListInvestorsInputSchema,
10
- UpdateInvestorEndpointResponseSchema,
11
- UpdateInvestorProfileSchema,
10
+ UpdateInvestorOutputSchema,
11
+ UpdateInvestorProfileInputSchema,
12
12
  } from "../schemas/investor";
13
13
 
14
14
  export type InvestorEntity = z.infer<typeof InvestorEntitySchema>;
15
15
 
16
16
  export type ListInvestorsInput = z.infer<typeof ListInvestorsInputSchema>;
17
17
 
18
- export type CreateInvestorDto = z.infer<typeof CreateInvestorProfileSchema> & {
18
+ export type CreateInvestorInput = z.infer<typeof CreateInvestorProfileInputSchema> & {
19
19
  userId: string;
20
20
  };
21
21
 
22
- export type UpdateInvestorDto = z.infer<typeof UpdateInvestorProfileSchema> & {
22
+ export type UpdateInvestorInput = z.infer<typeof UpdateInvestorProfileInputSchema> & {
23
23
  userId: string;
24
24
  };
25
25
 
@@ -27,12 +27,12 @@ export type GetInvestorParams = z.infer<typeof GetInvestorParamsSchema>;
27
27
 
28
28
  export type GetInvestorQuery = z.infer<typeof GetInvestorQuerySchema>;
29
29
 
30
- export type CreateInvestorEndpointResponse = z.infer<
31
- typeof CreateInvestorEndpointResponseSchema
30
+ export type CreateInvestorOutput = z.infer<
31
+ typeof CreateInvestorOutputSchema
32
32
  >;
33
- export type GetInvestorEndpointResponse = z.infer<
34
- typeof GetInvestorEndpointResponseSchema
33
+ export type GetInvestorOutput = z.infer<
34
+ typeof GetInvestorOutputSchema
35
35
  >;
36
- export type UpdateInvestorEndpointResponse = z.infer<
37
- typeof UpdateInvestorEndpointResponseSchema
36
+ export type UpdateInvestorOutput = z.infer<
37
+ typeof UpdateInvestorOutputSchema
38
38
  >;
@@ -94,7 +94,7 @@ export type ProjectWithUserEntity = MinimalProject & {
94
94
  projectFiles: (ProjectFileEntity & { fileUrl: string })[];
95
95
  } & Partial<ProjectSocialGraphEntity>;
96
96
 
97
- export type ListProjectsDto = {
97
+ export type ListProjectsInput = {
98
98
  query?: string;
99
99
  tags?: string[];
100
100
  clientName?: string;