Skip to content

Commit 0072aba

Browse files
refactor: v2 event-types (#15457)
* refactor: UserAvatarGroupWithOrg.tsx remove unecessary profile prop * chore: define event-type types in platform/types * feat: event-type transformes in lib and re-exported through platform-libraries * chore: define user types in platform/types * chore: add users endpoint to platform-constants * refactor: app-store use narrowed down booker event type * chore: version old event-types module * fix: old event-types e2e test * fix: libraries add missing export * fix: reset libraries version to 0 * feat: new event-types module and users endpoints * feat: make booker atom work with v2 event-types * updating event type * refactor: remove guard for get event-types * refactor: move private hook to public * Revert "refactor: remove guard for get event-types" This reverts commit d412040. * Revert "refactor: move private hook to public" This reverts commit 09322e8. * refactor: get by username and slug in /event-types * remove console log * feat: locations handle displayEventPublicly * test e2e event-types * revert: user output from types * refactor: event-types hooks have private and public folders * refactor: require event-type.slug in input * refactor: demand that all labels of booking fields are unique * refactor: remove unused import * refactor: only have email and name by default in booker * refactor: add booking field slug * fix: display event-type location publicly / hide it in booker * fix: display event-type location publicly / hide it in booker * fix: packages/lib tests * fix: typescript in e2e test * fix: dynamic event types input * refactor: use IsIn instead of IsEnum * refactor: simplify getEventTypes * fix: use ApiAuthGuard instead of AccessTokenGuard * chore: export more stuff from libraries * refactor: SchedulingTypeEnum and Type --------- Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
1 parent c7a96e1 commit 0072aba

File tree

122 files changed

+4738
-523
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+4738
-523
lines changed

apps/api/v2/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
},
2626
"dependencies": {
2727
"@calcom/platform-constants": "*",
28+
"@calcom/platform-libraries-0.0.13": "npm:@calcom/platform-libraries@0.0.13",
2829
"@calcom/platform-libraries-0.0.2": "npm:@calcom/platform-libraries@0.0.2",
2930
"@calcom/platform-libraries-0.0.4": "npm:@calcom/platform-libraries@0.0.4",
3031
"@calcom/platform-types": "*",

apps/api/v2/src/ee/event-types/event-types.module.ts

-17
This file was deleted.

apps/api/v2/src/ee/event-types/controllers/event-types.controller.e2e-spec.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.e2e-spec.ts

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { bootstrap } from "@/app";
22
import { AppModule } from "@/app.module";
3-
import { EventTypesModule } from "@/ee/event-types/event-types.module";
4-
import { CreateEventTypeInput } from "@/ee/event-types/inputs/create-event-type.input";
5-
import { Editable } from "@/ee/event-types/inputs/enums/editable";
6-
import { BaseField } from "@/ee/event-types/inputs/enums/field-type";
7-
import { UpdateEventTypeInput } from "@/ee/event-types/inputs/update-event-type.input";
8-
import { GetEventTypePublicOutput } from "@/ee/event-types/outputs/get-event-type-public.output";
9-
import { GetEventTypeOutput } from "@/ee/event-types/outputs/get-event-type.output";
10-
import { GetEventTypesPublicOutput } from "@/ee/event-types/outputs/get-event-types-public.output";
3+
import { Editable } from "@/ee/event-types/event-types_2024_04_15//inputs/enums/editable";
4+
import { EventTypesModule_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/event-types.module";
5+
import { CreateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/create-event-type.input";
6+
import { BaseField } from "@/ee/event-types/event-types_2024_04_15/inputs/enums/field-type";
7+
import { UpdateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/update-event-type.input";
8+
import { GetEventTypePublicOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-type-public.output";
9+
import { GetEventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-type.output";
10+
import { GetEventTypesPublicOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-types-public.output";
1111
import { HttpExceptionFilter } from "@/filters/http-exception.filter";
1212
import { PrismaExceptionFilter } from "@/filters/prisma-exception.filter";
1313
import { PermissionsGuard } from "@/modules/auth/guards/permissions/permissions.guard";
@@ -40,7 +40,7 @@ describe("Event types Endpoints", () => {
4040
beforeAll(async () => {
4141
const moduleRef = await Test.createTestingModule({
4242
providers: [PrismaExceptionFilter, HttpExceptionFilter],
43-
imports: [AppModule, UsersModule, EventTypesModule, TokensModule],
43+
imports: [AppModule, UsersModule, EventTypesModule_2024_04_15, TokensModule],
4444
})
4545
.overrideGuard(PermissionsGuard)
4646
.useValue({
@@ -83,7 +83,7 @@ describe("Event types Endpoints", () => {
8383
userEmail,
8484
Test.createTestingModule({
8585
providers: [PrismaExceptionFilter, HttpExceptionFilter],
86-
imports: [AppModule, UsersModule, EventTypesModule, TokensModule],
86+
imports: [AppModule, UsersModule, EventTypesModule_2024_04_15, TokensModule],
8787
})
8888
)
8989
.overrideGuard(PermissionsGuard)
@@ -132,7 +132,7 @@ describe("Event types Endpoints", () => {
132132
});
133133

134134
it("should create an event type", async () => {
135-
const body: CreateEventTypeInput = {
135+
const body: CreateEventTypeInput_2024_04_15 = {
136136
title: "Test Event Type",
137137
slug: "test-event-type",
138138
description: "A description of the test event type.",
@@ -173,7 +173,7 @@ describe("Event types Endpoints", () => {
173173
it("should update event type", async () => {
174174
const newTitle = "Updated title";
175175

176-
const body: UpdateEventTypeInput = {
176+
const body: UpdateEventTypeInput_2024_04_15 = {
177177
title: newTitle,
178178
disableGuests: false,
179179
slotInterval: 30,
@@ -207,7 +207,7 @@ describe("Event types Endpoints", () => {
207207
it("should return 400 if param event type id is null", async () => {
208208
const locations = [{ type: "inPerson", address: "123 Main St" }];
209209

210-
const body: UpdateEventTypeInput = {
210+
const body: UpdateEventTypeInput_2024_04_15 = {
211211
locations,
212212
};
213213

@@ -217,7 +217,7 @@ describe("Event types Endpoints", () => {
217217
it("should update event type locations", async () => {
218218
const locations = [{ type: "inPerson", address: "123 Main St" }];
219219

220-
const body: UpdateEventTypeInput = {
220+
const body: UpdateEventTypeInput_2024_04_15 = {
221221
locations,
222222
};
223223

@@ -266,7 +266,7 @@ describe("Event types Endpoints", () => {
266266
},
267267
];
268268

269-
const body: UpdateEventTypeInput = {
269+
const body: UpdateEventTypeInput_2024_04_15 = {
270270
bookingFields,
271271
};
272272

apps/api/v2/src/ee/event-types/controllers/event-types.controller.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/controllers/event-types.controller.ts

+24-23
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
import { CreateEventTypeInput } from "@/ee/event-types/inputs/create-event-type.input";
2-
import { EventTypeIdParams } from "@/ee/event-types/inputs/event-type-id.input";
3-
import { GetPublicEventTypeQueryParams } from "@/ee/event-types/inputs/get-public-event-type-query-params.input";
4-
import { UpdateEventTypeInput } from "@/ee/event-types/inputs/update-event-type.input";
5-
import { CreateEventTypeOutput } from "@/ee/event-types/outputs/create-event-type.output";
6-
import { DeleteEventTypeOutput } from "@/ee/event-types/outputs/delete-event-type.output";
7-
import { GetEventTypePublicOutput } from "@/ee/event-types/outputs/get-event-type-public.output";
8-
import { GetEventTypeOutput } from "@/ee/event-types/outputs/get-event-type.output";
9-
import { GetEventTypesPublicOutput } from "@/ee/event-types/outputs/get-event-types-public.output";
10-
import { GetEventTypesData, GetEventTypesOutput } from "@/ee/event-types/outputs/get-event-types.output";
11-
import { UpdateEventTypeOutput } from "@/ee/event-types/outputs/update-event-type.output";
12-
import { EventTypesService } from "@/ee/event-types/services/event-types.service";
13-
import { API_VERSIONS_VALUES } from "@/lib/api-versions";
1+
import { CreateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/create-event-type.input";
2+
import { EventTypeIdParams_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/event-type-id.input";
3+
import { GetPublicEventTypeQueryParams_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/get-public-event-type-query-params.input";
4+
import { UpdateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/update-event-type.input";
5+
import { CreateEventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/create-event-type.output";
6+
import { DeleteEventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/delete-event-type.output";
7+
import { GetEventTypePublicOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-type-public.output";
8+
import { GetEventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-type.output";
9+
import { GetEventTypesPublicOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-types-public.output";
10+
import {
11+
GetEventTypesData,
12+
GetEventTypesOutput,
13+
} from "@/ee/event-types/event-types_2024_04_15/outputs/get-event-types.output";
14+
import { UpdateEventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/update-event-type.output";
15+
import { EventTypesService_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/services/event-types.service";
16+
import { VERSION_2024_04_15_VALUE } from "@/lib/api-versions";
1417
import { GetUser } from "@/modules/auth/decorators/get-user/get-user.decorator";
1518
import { Permissions } from "@/modules/auth/decorators/permissions/permissions.decorator";
1619
import { ApiAuthGuard } from "@/modules/auth/guards/api-auth/api-auth.guard";
@@ -42,21 +45,21 @@ import { PrismaClient } from "@calcom/prisma";
4245

4346
@Controller({
4447
path: "/v2/event-types",
45-
version: API_VERSIONS_VALUES,
48+
version: VERSION_2024_04_15_VALUE,
4649
})
4750
@UseGuards(PermissionsGuard)
4851
@DocsTags("Event types")
49-
export class EventTypesController {
52+
export class EventTypesController_2024_04_15 {
5053
constructor(
51-
private readonly eventTypesService: EventTypesService,
54+
private readonly eventTypesService: EventTypesService_2024_04_15,
5255
private readonly prismaReadService: PrismaReadService
5356
) {}
5457

5558
@Post("/")
5659
@Permissions([EVENT_TYPE_WRITE])
5760
@UseGuards(ApiAuthGuard)
5861
async createEventType(
59-
@Body() body: CreateEventTypeInput,
62+
@Body() body: CreateEventTypeInput_2024_04_15,
6063
@GetUser() user: UserWithProfile
6164
): Promise<CreateEventTypeOutput> {
6265
const eventType = await this.eventTypesService.createUserEventType(user, body);
@@ -71,9 +74,7 @@ export class EventTypesController {
7174
@Permissions([EVENT_TYPE_READ])
7275
@UseGuards(ApiAuthGuard)
7376
async getEventType(
74-
@Param() params: EventTypeIdParams,
7577
@Param("eventTypeId", ParseIntPipe) eventTypeId: number,
76-
7778
@GetUser() user: UserWithProfile
7879
): Promise<GetEventTypeOutput> {
7980
const eventType = await this.eventTypesService.getUserEventTypeForAtom(user, Number(eventTypeId));
@@ -109,7 +110,7 @@ export class EventTypesController {
109110
async getPublicEventType(
110111
@Param("username") username: string,
111112
@Param("eventSlug") eventSlug: string,
112-
@Query() queryParams: GetPublicEventTypeQueryParams
113+
@Query() queryParams: GetPublicEventTypeQueryParams_2024_04_15
113114
): Promise<GetEventTypePublicOutput> {
114115
try {
115116
const event = await getPublicEvent(
@@ -149,9 +150,9 @@ export class EventTypesController {
149150
@UseGuards(ApiAuthGuard)
150151
@HttpCode(HttpStatus.OK)
151152
async updateEventType(
152-
@Param() params: EventTypeIdParams,
153+
@Param() params: EventTypeIdParams_2024_04_15,
153154
@Param("eventTypeId", ParseIntPipe) eventTypeId: number,
154-
@Body() body: UpdateEventTypeInput,
155+
@Body() body: UpdateEventTypeInput_2024_04_15,
155156
@GetUser() user: UserWithProfile
156157
): Promise<UpdateEventTypeOutput> {
157158
const eventType = await this.eventTypesService.updateEventType(eventTypeId, body, user);
@@ -166,7 +167,7 @@ export class EventTypesController {
166167
@Permissions([EVENT_TYPE_WRITE])
167168
@UseGuards(ApiAuthGuard)
168169
async deleteEventType(
169-
@Param() params: EventTypeIdParams,
170+
@Param() params: EventTypeIdParams_2024_04_15,
170171
@Param("eventTypeId", ParseIntPipe) eventTypeId: number,
171172
@GetUser("id") userId: number
172173
): Promise<DeleteEventTypeOutput> {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { EventTypesController_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/controllers/event-types.controller";
2+
import { EventTypesRepository_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/event-types.repository";
3+
import { EventTypesService_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/services/event-types.service";
4+
import { MembershipsModule } from "@/modules/memberships/memberships.module";
5+
import { PrismaModule } from "@/modules/prisma/prisma.module";
6+
import { SelectedCalendarsModule } from "@/modules/selected-calendars/selected-calendars.module";
7+
import { TokensModule } from "@/modules/tokens/tokens.module";
8+
import { UsersModule } from "@/modules/users/users.module";
9+
import { Module } from "@nestjs/common";
10+
11+
@Module({
12+
imports: [PrismaModule, MembershipsModule, TokensModule, UsersModule, SelectedCalendarsModule],
13+
providers: [EventTypesRepository_2024_04_15, EventTypesService_2024_04_15],
14+
controllers: [EventTypesController_2024_04_15],
15+
exports: [EventTypesService_2024_04_15, EventTypesRepository_2024_04_15],
16+
})
17+
export class EventTypesModule_2024_04_15 {}

apps/api/v2/src/ee/event-types/event-types.repository.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/event-types.repository.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CreateEventTypeInput } from "@/ee/event-types/inputs/create-event-type.input";
1+
import { CreateEventTypeInput_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/create-event-type.input";
22
import { PrismaReadService } from "@/modules/prisma/prisma-read.service";
33
import { PrismaWriteService } from "@/modules/prisma/prisma-write.service";
44
import { UserWithProfile } from "@/modules/users/users.repository";
@@ -8,12 +8,12 @@ import { getEventTypeById } from "@calcom/platform-libraries-0.0.2";
88
import type { PrismaClient } from "@calcom/prisma";
99

1010
@Injectable()
11-
export class EventTypesRepository {
11+
export class EventTypesRepository_2024_04_15 {
1212
constructor(private readonly dbRead: PrismaReadService, private readonly dbWrite: PrismaWriteService) {}
1313

1414
async createUserEventType(
1515
userId: number,
16-
body: Pick<CreateEventTypeInput, "title" | "slug" | "length" | "hidden">
16+
body: Pick<CreateEventTypeInput_2024_04_15, "title" | "slug" | "length" | "hidden">
1717
) {
1818
return this.dbWrite.prisma.eventType.create({
1919
data: {

apps/api/v2/src/ee/event-types/inputs/create-event-type.input.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/inputs/create-event-type.input.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { EventTypeLocation } from "@/ee/event-types/inputs/event-type-location.input";
1+
import { EventTypeLocation_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/event-type-location.input";
22
import { ApiProperty as DocsProperty, ApiHideProperty } from "@nestjs/swagger";
33
import { Type } from "class-transformer";
44
import {
@@ -20,7 +20,7 @@ export const CREATE_EVENT_DESCRIPTION_EXAMPLE =
2020

2121
// note(Lauris): We will gradually expose more properties if any customer needs them.
2222
// Just uncomment any below when requested.
23-
export class CreateEventTypeInput {
23+
export class CreateEventTypeInput_2024_04_15 {
2424
@IsNumber()
2525
@Min(1)
2626
@DocsProperty({ example: CREATE_EVENT_LENGTH_EXAMPLE })
@@ -46,9 +46,9 @@ export class CreateEventTypeInput {
4646

4747
@IsOptional()
4848
@ValidateNested({ each: true })
49-
@Type(() => EventTypeLocation)
49+
@Type(() => EventTypeLocation_2024_04_15)
5050
@IsArray()
51-
locations?: EventTypeLocation[];
51+
locations?: EventTypeLocation_2024_04_15[];
5252

5353
@IsBoolean()
5454
@IsOptional()
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { IsNumberString } from "class-validator";
22

3-
export class EventTypeIdParams {
3+
export class EventTypeIdParams_2024_04_15 {
44
@IsNumberString()
55
eventTypeId!: number;
66
}

apps/api/v2/src/ee/event-types/inputs/event-type-location.input.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/inputs/event-type-location.input.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { IsString, IsNumber, IsBoolean, IsOptional, IsUrl } from "class-validato
44
// note(Lauris): We will gradually expose more properties if any customer needs them.
55
// Just uncomment any below when requested.
66

7-
export class EventTypeLocation {
7+
export class EventTypeLocation_2024_04_15 {
88
@IsString()
99
@DocsProperty({ example: "link" })
1010
type!: string;

apps/api/v2/src/ee/event-types/inputs/get-public-event-type-query-params.input.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/inputs/get-public-event-type-query-params.input.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ApiProperty } from "@nestjs/swagger";
22
import { Transform } from "class-transformer";
33
import { IsBoolean, IsOptional, IsString } from "class-validator";
44

5-
export class GetPublicEventTypeQueryParams {
5+
export class GetPublicEventTypeQueryParams_2024_04_15 {
66
@Transform(({ value }: { value: string }) => value === "true")
77
@IsBoolean()
88
@IsOptional()

apps/api/v2/src/ee/event-types/inputs/update-event-type.input.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/inputs/update-event-type.input.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { Editable } from "@/ee/event-types/inputs/enums/editable";
2-
import { BaseField } from "@/ee/event-types/inputs/enums/field-type";
3-
import { Frequency } from "@/ee/event-types/inputs/enums/frequency";
4-
import { EventTypeLocation } from "@/ee/event-types/inputs/event-type-location.input";
1+
import { Editable } from "@/ee/event-types/event-types_2024_04_15/inputs/enums/editable";
2+
import { BaseField } from "@/ee/event-types/event-types_2024_04_15/inputs/enums/field-type";
3+
import { Frequency } from "@/ee/event-types/event-types_2024_04_15/inputs/enums/frequency";
4+
import { EventTypeLocation_2024_04_15 } from "@/ee/event-types/event-types_2024_04_15/inputs/event-type-location.input";
55
import { Type } from "class-transformer";
66
import {
77
IsString,
@@ -105,7 +105,7 @@ class VariantsConfig {
105105
variants!: Record<string, Variant>;
106106
}
107107

108-
export class BookingField {
108+
export class BookingField_2024_04_15 {
109109
@IsEnum(BaseField)
110110
type!: BaseField;
111111

@@ -179,7 +179,7 @@ export class BookingField {
179179
sources?: Source[];
180180
}
181181

182-
export class RecurringEvent {
182+
export class RecurringEvent_2024_04_15 {
183183
@IsDate()
184184
@IsOptional()
185185
dtstart?: Date;
@@ -202,7 +202,7 @@ export class RecurringEvent {
202202
tzid?: string;
203203
}
204204

205-
export class IntervalLimits {
205+
export class IntervalLimits_2024_04_15 {
206206
@IsNumber()
207207
@IsOptional()
208208
PER_DAY?: number;
@@ -220,7 +220,7 @@ export class IntervalLimits {
220220
PER_YEAR?: number;
221221
}
222222

223-
export class UpdateEventTypeInput {
223+
export class UpdateEventTypeInput_2024_04_15 {
224224
@IsInt()
225225
@Min(1)
226226
@IsOptional()
@@ -243,9 +243,9 @@ export class UpdateEventTypeInput {
243243
hidden?: boolean;
244244

245245
@ValidateNested({ each: true })
246-
@Type(() => EventTypeLocation)
246+
@Type(() => EventTypeLocation_2024_04_15)
247247
@IsOptional()
248-
locations?: EventTypeLocation[];
248+
locations?: EventTypeLocation_2024_04_15[];
249249

250250
// @IsInt()
251251
// @IsOptional()
@@ -278,8 +278,8 @@ export class UpdateEventTypeInput {
278278
@IsOptional()
279279
@IsArray()
280280
@ValidateNested({ each: true })
281-
@Type(() => BookingField)
282-
bookingFields?: BookingField[];
281+
@Type(() => BookingField_2024_04_15)
282+
bookingFields?: BookingField_2024_04_15[];
283283

284284
// @IsString()
285285
// @IsOptional()

apps/api/v2/src/ee/event-types/outputs/create-event-type.output.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/outputs/create-event-type.output.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { EventTypeOutput } from "@/ee/event-types/outputs/event-type.output";
1+
import { EventTypeOutput } from "@/ee/event-types/event-types_2024_04_15/outputs/event-type.output";
22
import { ApiProperty } from "@nestjs/swagger";
33
import { Type } from "class-transformer";
44
import { IsEnum, IsNotEmptyObject, ValidateNested } from "class-validator";

apps/api/v2/src/ee/event-types/outputs/delete-event-type.output.ts apps/api/v2/src/ee/event-types/event-types_2024_04_15/outputs/delete-event-type.output.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
CREATE_EVENT_LENGTH_EXAMPLE,
33
CREATE_EVENT_SLUG_EXAMPLE,
44
CREATE_EVENT_TITLE_EXAMPLE,
5-
} from "@/ee/event-types/inputs/create-event-type.input";
5+
} from "@/ee/event-types/event-types_2024_04_15/inputs/create-event-type.input";
66
import { ApiProperty } from "@nestjs/swagger";
77
import { ApiProperty as DocsProperty } from "@nestjs/swagger";
88
import { Type } from "class-transformer";

0 commit comments

Comments
 (0)