Enhance company types management: updated schema to include display order and relationships, modified validation to use company type XID, and seeded initial company types data. Updated services to reflect new structure and ensure proper data handling.

This commit is contained in:
2025-12-01 13:26:06 +05:30
parent d1eef782a2
commit e5861654e9
6 changed files with 159 additions and 55 deletions

View File

@@ -94,6 +94,12 @@ export class HostService {
userRefNumber: true,
}
},
companyTypes: {
select: {
id: true,
companyTypeName: true,
},
},
HostSuggestion: true,
HostTrack: true,
countries: true,
@@ -446,7 +452,9 @@ export class HostService {
panNumber: companyData.panNumber,
gstNumber: companyData.gstNumber || null,
formationDate: companyData.formationDate ? new Date(companyData.formationDate as any) : null,
companyType: companyData.companyType,
companyTypes: companyData.companyTypeXid
? { connect: { id: companyData.companyTypeXid } }
: undefined,
websiteUrl: companyData.websiteUrl || null,
instagramUrl: companyData.instagramUrl || null,
facebookUrl: companyData.facebookUrl || null,
@@ -475,13 +483,19 @@ export class HostService {
if (companyData.isSubsidairy && parentCompanyData) {
const createdParent = await tx.hostParent.create({
data: {
hostXid: createdHost.id,
host: { connect: { id: createdHost.id } },
companyName: parentCompanyData.companyName,
address1: parentCompanyData.address1 || null,
address2: parentCompanyData.address2 || null,
cityXid: parentCompanyData.cityXid || null,
stateXid: parentCompanyData.stateXid || null,
countryXid: parentCompanyData.countryXid || null,
cities: parentCompanyData.cityXid
? { connect: { id: parentCompanyData.cityXid } }
: undefined,
states: parentCompanyData.stateXid
? { connect: { id: parentCompanyData.stateXid } }
: undefined,
countries: parentCompanyData.countryXid
? { connect: { id: parentCompanyData.countryXid } }
: undefined,
pinCode: parentCompanyData.pinCode || null,
logoPath: parentCompanyData.logoPath || null,
isSubsidairy: false,
@@ -489,7 +503,9 @@ export class HostService {
panNumber: parentCompanyData.panNumber || null,
gstNumber: parentCompanyData.gstNumber || null,
formationDate: parentCompanyData.formationDate ? new Date(parentCompanyData.formationDate as any) : null,
companyType: parentCompanyData.companyType || null,
companyTypes: parentCompanyData.companyTypeXid
? { connect: { id: parentCompanyData.companyTypeXid } }
: undefined,
websiteUrl: parentCompanyData.websiteUrl || null,
instagramUrl: parentCompanyData.instagramUrl || null,
facebookUrl: parentCompanyData.facebookUrl || null,
@@ -529,7 +545,9 @@ export class HostService {
panNumber: companyData.panNumber,
gstNumber: companyData.gstNumber || null,
formationDate: companyData.formationDate ? new Date(companyData.formationDate as any) : null,
companyType: companyData.companyType,
companyTypes: companyData.companyTypeXid
? { connect: { id: companyData.companyTypeXid } }
: undefined,
websiteUrl: companyData.websiteUrl || null,
instagramUrl: companyData.instagramUrl || null,
facebookUrl: companyData.facebookUrl || null,
@@ -584,13 +602,19 @@ export class HostService {
// create
const createdParent = await tx.hostParent.create({
data: {
hostXid: updatedHost.id,
host: { connect: { id: updatedHost.id } },
companyName: parentCompanyData.companyName,
address1: parentCompanyData.address1 || null,
address2: parentCompanyData.address2 || null,
cityXid: parentCompanyData.cityXid || null,
stateXid: parentCompanyData.stateXid || null,
countryXid: parentCompanyData.countryXid || null,
cities: parentCompanyData.cityXid
? { connect: { id: parentCompanyData.cityXid } }
: undefined,
states: parentCompanyData.stateXid
? { connect: { id: parentCompanyData.stateXid } }
: undefined,
countries: parentCompanyData.countryXid
? { connect: { id: parentCompanyData.countryXid } }
: undefined,
pinCode: parentCompanyData.pinCode || null,
logoPath: parentCompanyData.logoPath || null,
isSubsidairy: false,
@@ -598,7 +622,9 @@ export class HostService {
panNumber: parentCompanyData.panNumber || null,
gstNumber: parentCompanyData.gstNumber || null,
formationDate: parentCompanyData.formationDate ? new Date(parentCompanyData.formationDate as any) : null,
companyType: parentCompanyData.companyType || null,
companyTypes: parentCompanyData.companyTypeXid
? { connect: { id: parentCompanyData.companyTypeXid } }
: undefined,
websiteUrl: parentCompanyData.websiteUrl || null,
instagramUrl: parentCompanyData.instagramUrl || null,
facebookUrl: parentCompanyData.facebookUrl || null,
@@ -627,16 +653,24 @@ export class HostService {
companyName: parentCompanyData.companyName,
address1: parentCompanyData.address1 || null,
address2: parentCompanyData.address2 || null,
cityXid: parentCompanyData.cityXid || null,
stateXid: parentCompanyData.stateXid || null,
countryXid: parentCompanyData.countryXid || null,
cities: parentCompanyData.cityXid
? { connect: { id: parentCompanyData.cityXid } }
: undefined,
states: parentCompanyData.stateXid
? { connect: { id: parentCompanyData.stateXid } }
: undefined,
countries: parentCompanyData.countryXid
? { connect: { id: parentCompanyData.countryXid } }
: undefined,
pinCode: parentCompanyData.pinCode || null,
logoPath: parentCompanyData.logoPath || null,
registrationNumber: parentCompanyData.registrationNumber || null,
panNumber: parentCompanyData.panNumber || null,
gstNumber: parentCompanyData.gstNumber || null,
formationDate: parentCompanyData.formationDate ? new Date(parentCompanyData.formationDate as any) : null,
companyType: parentCompanyData.companyType || null,
companyTypes: parentCompanyData.companyTypeXid
? { connect: { id: parentCompanyData.companyTypeXid } }
: undefined,
websiteUrl: parentCompanyData.websiteUrl || null,
instagramUrl: parentCompanyData.instagramUrl || null,
facebookUrl: parentCompanyData.facebookUrl || null,

View File

@@ -831,6 +831,12 @@ export class MinglarService {
profileImage: true,
},
},
companyTypes: {
select: {
id: true,
companyTypeName: true,
},
},
},
});
@@ -902,6 +908,12 @@ export class MinglarService {
profileImage: true,
},
},
companyTypes: {
select: {
id: true,
companyTypeName: true,
},
},
},
});
@@ -1435,6 +1447,12 @@ export class MinglarService {
documentType: true,
},
},
companyTypes: {
select: {
id: true,
companyTypeName: true,
},
},
user: {
select: {
id: true,

View File

@@ -37,8 +37,8 @@ export class PrePopulateService {
}
});
}
async getCityByStateId(stateXid: number) {
return await this.prisma.cities.findMany({
where: {
@@ -90,7 +90,7 @@ export class PrePopulateService {
}
async getAllDocumentTypeWithCountryStateCity() {
const [documentDetails, countryDetails, stateDetails] =
const [documentDetails, countryDetails, stateDetails, companyTypeDetails] =
await this.prisma.$transaction([
this.prisma.documentType.findMany({
where: { isActive: true, isVisible: true },
@@ -101,10 +101,15 @@ export class PrePopulateService {
}),
this.prisma.states.findMany({
where: { isActive: true },
orderBy: { stateName: 'asc' }
}),
this.prisma.companyTypes.findMany({
where: { isActive: true },
orderBy: { companyTypeName: 'asc' }
}),
]);
return { documentDetails, countryDetails, stateDetails };
return { documentDetails, countryDetails, stateDetails, companyTypeDetails };
}
async getAllFrequencies() {