This commit is contained in:
paritosh18
2025-11-13 16:00:18 +05:30
13 changed files with 565 additions and 76 deletions

View File

@@ -7,14 +7,6 @@ import { hostCompanyDetailsSchema } from '../../../common/utils/validation/host/
import { CreateMinglarDto, UpdateMinglarDto } from '../dto/minglar.dto';
import { User } from '@prisma/client';
type HostCompanyDetailsInput = z.infer<typeof hostCompanyDetailsSchema>;
// Document input after S3 upload (with S3 URL as filePath)
interface HostDocumentInput {
documentTypeXid: number;
documentName: string;
filePath: string; // S3 URL
}
@Injectable()
export class MinglarService {
@@ -177,60 +169,60 @@ export class MinglarService {
}
async addCompanyDetails(
companyData: HostCompanyDetailsInput,
documents: HostDocumentInput[] // Documents with S3 URLs
) {
return await this.prisma.$transaction(async (tx) => {
// ✅ Check for existing company
const existingHost = await tx.hostHeader.findFirst({
where: { registrationNumber: companyData.registrationNumber },
});
// async addCompanyDetails(
// companyData: HostCompanyDetailsInput,
// documents: HostDocumentInput[] // Documents with S3 URLs
// ) {
// return await this.prisma.$transaction(async (tx) => {
// // ✅ Check for existing company
// const existingHost = await tx.hostHeader.findFirst({
// where: { registrationNumber: companyData.registrationNumber },
// });
if (existingHost) {
throw new ApiError(400, 'Company already exists with this registration number');
}
// if (existingHost) {
// throw new ApiError(400, 'Company already exists with this registration number');
// }
// ✅ Create company record
const createdHost = await tx.hostHeader.create({
data: {
companyName: companyData.companyName,
hostRefNumber: companyData.hostRefNumber,
address1: companyData.address1,
address2: companyData.address2,
cityXid: companyData.cityXid,
stateXid: companyData.stateXid,
countryXid: companyData.countryXid,
pinCode: companyData.pinCode,
logoPath: companyData.logoPath,
isSubsidairy: companyData.isSubsidairy,
registrationNumber: companyData.registrationNumber,
panNumber: companyData.panNumber,
gstNumber: companyData.gstNumber,
formationDate: new Date(companyData.formationDate),
companyType: companyData.companyType,
websiteUrl: companyData.websiteUrl,
instagramUrl: companyData.instagramUrl,
facebookUrl: companyData.facebookUrl,
linkedinUrl: companyData.linkedinUrl,
twitterUrl: companyData.twitterUrl,
currencyXid: companyData.currencyXid,
},
});
// // ✅ Create company record
// const createdHost = await tx.hostHeader.create({
// data: {
// companyName: companyData.companyName,
// hostRefNumber: companyData.hostRefNumber,
// address1: companyData.address1,
// address2: companyData.address2,
// cityXid: companyData.cityXid,
// stateXid: companyData.stateXid,
// countryXid: companyData.countryXid,
// pinCode: companyData.pinCode,
// logoPath: companyData.logoPath,
// isSubsidairy: companyData.isSubsidairy,
// registrationNumber: companyData.registrationNumber,
// panNumber: companyData.panNumber,
// gstNumber: companyData.gstNumber,
// formationDate: new Date(companyData.formationDate),
// companyType: companyData.companyType,
// websiteUrl: companyData.websiteUrl,
// instagramUrl: companyData.instagramUrl,
// facebookUrl: companyData.facebookUrl,
// linkedinUrl: companyData.linkedinUrl,
// twitterUrl: companyData.twitterUrl,
// currencyXid: companyData.currencyXid,
// },
// });
// ✅ Create documents (if provided)
if (documents && documents.length > 0) {
const docsData = documents.map((doc) => ({
hostXid: createdHost.id,
documentTypeXid: doc.documentTypeXid,
documentName: doc.documentName,
filePath: doc.filePath,
}));
// // ✅ Create documents (if provided)
// if (documents && documents.length > 0) {
// const docsData = documents.map((doc) => ({
// hostXid: createdHost.id,
// documentTypeXid: doc.documentTypeXid,
// documentName: doc.documentName,
// filePath: doc.filePath,
// }));
await tx.hostDocuments.createMany({ data: docsData });
}
// await tx.hostDocuments.createMany({ data: docsData });
// }
return createdHost;
});
}
// return createdHost;
// });
// }
}