import mongoose from "mongoose"; import cloudinary from "../../Utils/cloudinary.js"; import { KYC } from "./KycModel.js"; export const createKyc = async (req, res) => { const { name, trade_name, address, state, city, district, pincode, mobile_number, principal_distributer, pan_number, aadhar_number, gst_number, addedBy, notes, } = req.body; const { fertilizer_license_img, selfie_entrance_img, pan_img, aadhar_img, gst_img, pesticide_license_img, } = req.files; if (!req?.user) return res.status(400).json({ message: "Please login!" }); try { if (!mongoose.Types.ObjectId.isValid(req.user._id)) { return res.status(400).json({ message: "Please login again" }); } // Upload images to Cloudinary and store only public_id and url const uploadImage = async (image, folder) => { const result = await cloudinary.v2.uploader.upload(image.tempFilePath, { folder, }); return { public_id: result.public_id, url: result.secure_url, }; }; const panImg = await uploadImage(pan_img, "KYC/pan"); const aadharImg = await uploadImage(aadhar_img, "KYC/aadhar"); const gstImg = await uploadImage(gst_img, "KYC/gst"); const pesticideLicenseImg = await uploadImage( pesticide_license_img, "KYC/pesticide_license" ); const fertilizerLicenseImg = fertilizer_license_img ? await uploadImage(fertilizer_license_img, "KYC/fertilizer_license") : null; const selfieEntranceImg = await uploadImage( selfie_entrance_img, "KYC/selfie_entrance" ); // Create KYC document const kyc = await KYC.create({ name, trade_name, address, state, city, district, pincode, mobile_number, principal_distributer, pan_number, pan_img: panImg, aadhar_number, aadhar_img: aadharImg, gst_number, gst_img: gstImg, pesticide_license_img: pesticideLicenseImg, fertilizer_license_img: fertilizerLicenseImg, selfie_entrance_img: selfieEntranceImg, addedBy: req.user._id, notes, }); if (kyc) { return res .status(201) .json({ success: true, kyc, message: "KYC created" }); } } catch (error) { res.status(500).json({ success: false, message: error.message ? error.message : "Something went wrong", }); } };