fixed the null issue of venue name

This commit is contained in:
2026-01-09 18:10:38 +05:30
parent aa00e1585c
commit 5d93945729
2 changed files with 114 additions and 102 deletions

View File

@@ -106,7 +106,7 @@ const bucket = config.aws.bucketName;
@Injectable()
export class HostService {
constructor(private prisma: PrismaClient) {}
constructor(private prisma: PrismaClient) { }
async createHost(data: CreateHostDto) {
return this.prisma.user.create({ data });
@@ -115,8 +115,8 @@ export class HostService {
async getAllHosts() {
return this.prisma.user.findMany({ where: { roleXid: 3 } });
}
async getActivityDetailsById(activityXid: number) {
return this.prisma.activities.findFirst({ where: { id: activityXid } });
}
@@ -774,7 +774,7 @@ export class HostService {
if (
existingHostCompany &&
existingHostCompany.hostStatusInternal ===
HOST_STATUS_INTERNAL.HOST_TO_UPDATE &&
HOST_STATUS_INTERNAL.HOST_TO_UPDATE &&
!isDraft
) {
hostStatusInternal = HOST_STATUS_INTERNAL.HOST_SUBMITTED;
@@ -787,7 +787,7 @@ export class HostService {
else if (
existingHostCompany &&
existingHostCompany.hostStatusInternal ===
HOST_STATUS_INTERNAL.HOST_TO_UPDATE &&
HOST_STATUS_INTERNAL.HOST_TO_UPDATE &&
isDraft
) {
// keep original
@@ -898,19 +898,19 @@ export class HostService {
// Safely handle city connection - only connect if valid ID exists
cities:
parentCompanyData?.cityXid &&
!isNaN(Number(parentCompanyData.cityXid))
!isNaN(Number(parentCompanyData.cityXid))
? { connect: { id: Number(parentCompanyData.cityXid) } }
: undefined,
states:
parentCompanyData?.stateXid &&
!isNaN(Number(parentCompanyData.stateXid))
!isNaN(Number(parentCompanyData.stateXid))
? { connect: { id: Number(parentCompanyData.stateXid) } }
: undefined,
countries:
parentCompanyData?.countryXid &&
!isNaN(Number(parentCompanyData.countryXid))
!isNaN(Number(parentCompanyData.countryXid))
? { connect: { id: Number(parentCompanyData.countryXid) } }
: undefined,
pinCode: parentCompanyData.pinCode || null,
@@ -1043,53 +1043,53 @@ export class HostService {
// }
// }
// documents handling (FINAL FIX)
if (documents?.length) {
for (const doc of documents) {
if (!doc.filePath) continue;
if (documents?.length) {
for (const doc of documents) {
if (!doc.filePath) continue;
// 🔹 CUSTOM DOCUMENTS → ALWAYS CREATE
if (doc.documentTypeXid === 9) {
await tx.hostDocuments.create({
data: {
hostXid: updatedHost.id,
documentTypeXid: doc.documentTypeXid,
documentName: sanitizeDocumentName(doc.documentName),
filePath: doc.filePath,
},
});
continue;
}
// 🔹 CUSTOM DOCUMENTS → ALWAYS CREATE
if (doc.documentTypeXid === 9) {
await tx.hostDocuments.create({
data: {
hostXid: updatedHost.id,
documentTypeXid: doc.documentTypeXid,
documentName: sanitizeDocumentName(doc.documentName),
filePath: doc.filePath,
},
});
continue;
}
// 🔹 NORMAL DOCUMENTS → UPSERT (ONE PER TYPE)
const existingDoc = await tx.hostDocuments.findFirst({
where: {
hostXid: updatedHost.id,
documentTypeXid: doc.documentTypeXid,
},
});
// 🔹 NORMAL DOCUMENTS → UPSERT (ONE PER TYPE)
const existingDoc = await tx.hostDocuments.findFirst({
where: {
hostXid: updatedHost.id,
documentTypeXid: doc.documentTypeXid,
},
});
if (existingDoc) {
await tx.hostDocuments.update({
where: { id: existingDoc.id },
data: {
filePath: doc.filePath,
documentName:
sanitizeDocumentName(doc.documentName) ||
existingDoc.documentName,
},
});
} else {
await tx.hostDocuments.create({
data: {
hostXid: updatedHost.id,
documentTypeXid: doc.documentTypeXid,
documentName: sanitizeDocumentName(doc.documentName),
filePath: doc.filePath,
},
});
}
}
}
if (existingDoc) {
await tx.hostDocuments.update({
where: { id: existingDoc.id },
data: {
filePath: doc.filePath,
documentName:
sanitizeDocumentName(doc.documentName) ||
existingDoc.documentName,
},
});
} else {
await tx.hostDocuments.create({
data: {
hostXid: updatedHost.id,
documentTypeXid: doc.documentTypeXid,
documentName: sanitizeDocumentName(doc.documentName),
filePath: doc.filePath,
},
});
}
}
}
// parent logic untouched
@@ -1109,19 +1109,19 @@ if (documents?.length) {
address2: parentCompanyData.address2 || null,
cities:
parentCompanyData?.cityXid &&
!isNaN(Number(parentCompanyData.cityXid))
!isNaN(Number(parentCompanyData.cityXid))
? { connect: { id: Number(parentCompanyData.cityXid) } }
: undefined,
states:
parentCompanyData?.stateXid &&
!isNaN(Number(parentCompanyData.stateXid))
!isNaN(Number(parentCompanyData.stateXid))
? { connect: { id: Number(parentCompanyData.stateXid) } }
: undefined,
countries:
parentCompanyData?.countryXid &&
!isNaN(Number(parentCompanyData.countryXid))
!isNaN(Number(parentCompanyData.countryXid))
? { connect: { id: Number(parentCompanyData.countryXid) } }
: undefined,
pinCode: parentCompanyData.pinCode || null,
@@ -1167,19 +1167,19 @@ if (documents?.length) {
address2: parentCompanyData.address2 || null,
cities:
parentCompanyData?.cityXid &&
!isNaN(Number(parentCompanyData.cityXid))
!isNaN(Number(parentCompanyData.cityXid))
? { connect: { id: Number(parentCompanyData.cityXid) } }
: undefined,
states:
parentCompanyData?.stateXid &&
!isNaN(Number(parentCompanyData.stateXid))
!isNaN(Number(parentCompanyData.stateXid))
? { connect: { id: Number(parentCompanyData.stateXid) } }
: undefined,
countries:
parentCompanyData?.countryXid &&
!isNaN(Number(parentCompanyData.countryXid))
!isNaN(Number(parentCompanyData.countryXid))
? { connect: { id: Number(parentCompanyData.countryXid) } }
: undefined,
pinCode: parentCompanyData.pinCode || null,
@@ -2477,6 +2477,18 @@ if (documents?.length) {
throw new ApiError(400, 'activityXid is required');
}
payload.venues = Array.isArray(payload.venues)
? payload.venues
.filter(v => v && typeof v === 'object')
.map(v => ({
...v,
venueName: v.venueName ?? null,
venueLabel: v.venueLabel ?? null,
prices: Array.isArray(v.prices) ? v.prices : [],
media: Array.isArray(v.media) ? v.media : [],
}))
: [];
/* =====================================================
* HARD NORMALIZATION (SERVICE-LEVEL)
* ===================================================== */
@@ -2582,9 +2594,9 @@ if (documents?.length) {
const rootTaxes =
taxIds.length > 0
? await this.prisma.taxes.findMany({
where: { id: { in: taxIds }, isActive: true },
select: { id: true, taxPer: true },
})
where: { id: { in: taxIds }, isActive: true },
select: { id: true, taxPer: true },
})
: [];
if (taxIds.length !== rootTaxes.length) {
@@ -2802,8 +2814,8 @@ if (documents?.length) {
const venueRow = await tx.activityVenues.create({
data: {
activityXid,
venueName: venue.venueName,
venueLabel: venue.venueLabel,
venueName: venue.venueName ?? null,
venueLabel: venue.venueLabel ?? null,
venueCapacity: toNumber(venue.venueCapacity) ?? 0,
availableSeats: toNumber(venue.availableSeats) ?? 0,
isMinPeopleReqMandatory: venue.isMinPeopleReqMandatory,
@@ -3452,7 +3464,7 @@ if (documents?.length) {
},
},
ActivityPQQSuggestions: {
where: { isActive: true , isReviewed :false },
where: { isActive: true, isReviewed: false },
select: {
id: true,
title: true,