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:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user