@zyacreatives/shared 1.2.7 → 1.2.9

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,9 +1,8 @@
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
- const user_1 = require("./user");
7
6
  const common_1 = require("./common");
8
7
  exports.InvestorEntitySchema = zod_openapi_1.z
9
8
  .object({
@@ -42,14 +41,13 @@ exports.InvestorEntitySchema = zod_openapi_1.z
42
41
  .date()
43
42
  .optional()
44
43
  .openapi({ example: "2025-10-13T09:00:00.000Z" }),
45
- user: user_1.MinimalUserSchema,
46
44
  updatedAt: zod_openapi_1.z.coerce
47
45
  .date()
48
46
  .optional()
49
47
  .openapi({ example: "2025-10-13T09:00:00.000Z" }),
50
48
  })
51
49
  .openapi("InvestorEntity");
52
- exports.CreateInvestorProfileSchema = zod_openapi_1.z
50
+ exports.CreateInvestorProfileInputSchema = zod_openapi_1.z
53
51
  .object({
54
52
  bio: zod_openapi_1.z.string().max(210).optional().default("").openapi({
55
53
  example: "Angel investor backing early-stage African startups.",
@@ -70,7 +68,7 @@ exports.CreateInvestorProfileSchema = zod_openapi_1.z
70
68
  .openapi({
71
69
  title: "Create Investor Profile",
72
70
  });
73
- exports.UpdateInvestorProfileSchema = zod_openapi_1.z
71
+ exports.UpdateInvestorProfileInputSchema = zod_openapi_1.z
74
72
  .object({
75
73
  bio: zod_openapi_1.z.string().max(210).optional().openapi({
76
74
  example: "Seasoned venture capitalist with a focus on healthtech.",
@@ -149,8 +147,6 @@ exports.GetInvestorParamsSchema = zod_openapi_1.z.object({
149
147
  value: common_1.CuidSchema,
150
148
  });
151
149
  exports.GetInvestorQuerySchema = common_1.ProfileIdentifierSchema;
152
- exports.CreateInvestorEndpointResponseSchema = exports.InvestorEntitySchema;
153
- exports.GetInvestorEndpointResponseSchema = exports.InvestorEntitySchema.extend({
154
- user: user_1.MinimalUserSchema,
155
- });
156
- 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.7",
3
+ "version": "1.2.9",
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
+ ];
@@ -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
@@ -16,8 +15,6 @@ export const BrandEntitySchema = z
16
15
  .array(z.string())
17
16
  .optional()
18
17
  .openapi({ example: ["technology", "saas", "startup"] }),
19
-
20
- user: MinimalUserSchema,
21
18
  disciplines: z
22
19
  .array(z.string())
23
20
  .openapi({ example: ["Marketing", "Product Development"] }),
@@ -70,7 +67,7 @@ export const ListBrandsInputSchema = z
70
67
  })
71
68
  .openapi("ListBrandsInput");
72
69
 
73
- export const CreateBrandProfileSchema = z
70
+ export const CreateBrandProfileInputSchema = z
74
71
  .object({
75
72
  brandName: z
76
73
  .string()
@@ -94,7 +91,7 @@ export const CreateBrandProfileSchema = z
94
91
  title: "create brand profile",
95
92
  });
96
93
 
97
- export const UpdateBrandProfileSchema = z
94
+ export const UpdateBrandProfileInputSchema = z
98
95
  .object({
99
96
  brandName: z.string().min(1).optional().openapi({ example: "Acme Studio" }),
100
97
  bio: z.string().max(210).optional().openapi({
@@ -115,8 +112,8 @@ export const GetBrandParamsSchema = z.object({
115
112
 
116
113
  export const GetBrandQuerySchema = ProfileIdentifierSchema;
117
114
 
118
- export const CreateBrandEndpointResponseSchema = BrandEntitySchema;
119
- export const GetBrandEndpointResponseSchema = BrandEntitySchema.extend({
120
- user: MinimalUserSchema,
121
- });
122
- export const UpdateBrandEndpointResponseSchema = BrandEntitySchema;
115
+ export const CreateBrandOutputSchema = BrandEntitySchema;
116
+
117
+ export const GetBrandOutputSchema = BrandEntitySchema;
118
+
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()
@@ -28,7 +27,6 @@ export const CreativeEntitySchema = z
28
27
  .array(z.string())
29
28
  .optional()
30
29
  .openapi({ example: ["Design", "Art Direction"] }),
31
- user: MinimalUserSchema,
32
30
  createdAt: z.coerce
33
31
  .date()
34
32
  .optional()
@@ -72,7 +70,7 @@ export const ListCreativesInputSchema = z
72
70
  })
73
71
  .openapi("ListCreativesInput");
74
72
 
75
- export const CreateCreativeProfileSchema = z
73
+ export const CreateCreativeProfileInputSchema = z
76
74
  .object({
77
75
  experienceLevel: z
78
76
  .enum(EXPERIENCE_LEVELS)
@@ -100,7 +98,7 @@ export const CreateCreativeProfileSchema = z
100
98
  title: "create creative profile",
101
99
  });
102
100
 
103
- export const UpdateCreativeProfileSchema = z
101
+ export const UpdateCreativeProfileInputSchema = z
104
102
  .object({
105
103
  experienceLevel: z
106
104
  .enum(EXPERIENCE_LEVELS)
@@ -136,8 +134,8 @@ export const GetCreativeParamsSchema = z.object({
136
134
 
137
135
  export const GetCreativeQuerySchema = ProfileIdentifierSchema;
138
136
 
139
- export const CreateCreativeEndpointResponseSchema = CreativeEntitySchema;
140
- export const GetCreativeEndpointResponseSchema = CreativeEntitySchema.extend({
141
- user: MinimalUserSchema,
142
- });
143
- export const UpdateCreativeEndpointResponseSchema = CreativeEntitySchema;
137
+ export const CreateCreativeOutputSchema = CreativeEntitySchema;
138
+
139
+ export const GetCreativeOutputSchema = CreativeEntitySchema
140
+
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
+
@@ -61,7 +61,6 @@ export const InvestorEntitySchema = z
61
61
  .date()
62
62
  .optional()
63
63
  .openapi({ example: "2025-10-13T09:00:00.000Z" }),
64
- user: MinimalUserSchema,
65
64
  updatedAt: z.coerce
66
65
  .date()
67
66
  .optional()
@@ -69,7 +68,7 @@ export const InvestorEntitySchema = z
69
68
  })
70
69
  .openapi("InvestorEntity");
71
70
 
72
- export const CreateInvestorProfileSchema = z
71
+ export const CreateInvestorProfileInputSchema = z
73
72
  .object({
74
73
  bio: z.string().max(210).optional().default("").openapi({
75
74
  example: "Angel investor backing early-stage African startups.",
@@ -96,7 +95,7 @@ export const CreateInvestorProfileSchema = z
96
95
  title: "Create Investor Profile",
97
96
  });
98
97
 
99
- export const UpdateInvestorProfileSchema = z
98
+ export const UpdateInvestorProfileInputSchema = z
100
99
  .object({
101
100
  bio: z.string().max(210).optional().openapi({
102
101
  example: "Seasoned venture capitalist with a focus on healthtech.",
@@ -198,8 +197,8 @@ export const GetInvestorParamsSchema = z.object({
198
197
 
199
198
  export const GetInvestorQuerySchema = ProfileIdentifierSchema;
200
199
 
201
- export const CreateInvestorEndpointResponseSchema = InvestorEntitySchema;
202
- export const GetInvestorEndpointResponseSchema = InvestorEntitySchema.extend({
203
- user: MinimalUserSchema,
204
- });
205
- export const UpdateInvestorEndpointResponseSchema = InvestorEntitySchema;
200
+ export const CreateInvestorOutputSchema = InvestorEntitySchema;
201
+
202
+ export const GetInvestorOutputSchema = InvestorEntitySchema
203
+
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>;