From 89f1bf55bcca78b5491da37fe275120cad8a4b25 Mon Sep 17 00:00:00 2001 From: paritosh18 Date: Wed, 25 Feb 2026 13:34:03 +0530 Subject: [PATCH] feat: Add initial Prisma schema with core models and implement host activity creation functionality. --- prisma/schema.prisma | 1 + src/modules/host/dto/createActivity.schema.ts | 1 + .../host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts | 1 + src/modules/host/services/host.service.ts | 1 + 4 files changed, 4 insertions(+) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 657a1c6..0b7cd08 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1074,6 +1074,7 @@ model ActivitiesMedia { activity Activities @relation(fields: [activityXid], references: [id], onDelete: Cascade) mediaType String @map("media_type") @db.VarChar(30) mediaFileName String @map("media_file_name") @db.VarChar(400) + isCoverImage Boolean @default(false) @map("is_cover_image") displayOrder Int @map("display_order") isActive Boolean @default(true) @map("is_active") createdAt DateTime @default(now()) @map("created_at") diff --git a/src/modules/host/dto/createActivity.schema.ts b/src/modules/host/dto/createActivity.schema.ts index 385dc01..7a74bf1 100644 --- a/src/modules/host/dto/createActivity.schema.ts +++ b/src/modules/host/dto/createActivity.schema.ts @@ -4,6 +4,7 @@ import { z } from 'zod'; export const MediaDto = z.object({ mediaType: z.string().optional(), mediaFileName: z.string(), + isCoverImage: z.boolean().optional().default(false), }); /* ================= PRICE ================= */ diff --git a/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts b/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts index 1d840e4..1a31d78 100644 --- a/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts +++ b/src/modules/host/handlers/Activity_Hub/OnBoarding/CreateNewActivity.ts @@ -59,6 +59,7 @@ export const handler = safeHandler( activity.media = media.map((m: any) => ({ mediaType: m.mediaType ?? 'image', mediaFileName: m.mediaFileName, + isCoverImage: m.isCoverImage ?? false, })); /* 5️⃣ VALIDATION */ diff --git a/src/modules/host/services/host.service.ts b/src/modules/host/services/host.service.ts index 90c553c..f51d96f 100644 --- a/src/modules/host/services/host.service.ts +++ b/src/modules/host/services/host.service.ts @@ -2945,6 +2945,7 @@ export class HostService { activityXid, mediaType: m.mediaType ?? 'unknown', mediaFileName: m.mediaFileName, + isCoverImage: m.isCoverImage ?? false, displayOrder: index + 1, })), });