import PropertyModal from "../models/property.js"; import UserModal from "../models/user.js"; import mongoose from "mongoose"; // import { v4 as uuidv4 } from "uuid"; export const createProperty = async (req, res) => { const propertyData = req.body; // console.log('Property received:', propertyData); function generateRandomNumber() { return Math.floor(Math.random() * 90000) + 10000; } const randomNumber = generateRandomNumber().toString(); const propertyId = `EFPI${randomNumber}`; const newProperty = new PropertyModal({ ...propertyData, creator: req.userId, createdAt: new Date().toISOString(), publishedAt: new Date().toISOString(), currentYear: new Date().getFullYear(), propertyId: propertyId, }); try { await newProperty.save(); res.status(201).json(newProperty); } catch (error) { res.status(404).json({ message: "Something went wrong" }); } }; // Fetch property by userId.. Gets the specif user properties export const getUserProperties = async (req, res) => { try { const userId = req.params.userId; const properties = await PropertyModal.find({ userId: userId }); res.status(200).json(properties); } catch (error) { res.status(500).json({ message: "Error retrieving properties", error }); } }; // Fetch property by ID.. which is property view page export const getPropertyById = async (req, res) => { const { propertyId } = req.params; try { const property = await PropertyModal.findOne({ propertyId }); res.status(200).json(property); } catch (error) { res.status(404).json({ message: "Something went wrong" }); } }; // Update property by ID.. export const updatePropertyById = async (req, res) => { const { id } = req.params; // This should be the propertyId const updateData = req.body; console.log("Received propertyId:", id); // Log the received propertyId console.log("updateData", updateData); try { // Find the property by propertyId instead of _id const updatedProperty = await PropertyModal.findOneAndUpdate( { propertyId: id }, // Search by propertyId updateData, { new: true } ); if (!updatedProperty) { return res.status(404).json({ message: "Property not found" }); } res.status(200).json(updatedProperty); } catch (error) { console.error("Error updating property:", error.message); res.status(500).json({ message: "Failed to update property", error: error.message }); } };