'use client'; import { useState } from 'react'; import { motion } from 'framer-motion'; import { useProperties } from '@/app/contexts/PropertyContext'; import { COMMISSION_TYPE, CITIES } from '@/app/utils/constants'; import { X, MapPin, Home, DollarSign, Percent } from 'lucide-react'; export default function AddPropertyForm({ onClose, onSuccess }) { const { addProperty } = useProperties(); const [formData, setFormData] = useState({ title: '', description: '', city: '', district: '', address: '', latitude: '', longitude: '', type: 'apartment', bedrooms: 1, bathrooms: 1, area: 0, floor: 1, dailyPrice: 0, commissionRate: 5, commissionType: COMMISSION_TYPE.FROM_OWNER, securityDeposit: 0, images: [], features: [], status: 'available' }); const [selectedFeatures, setSelectedFeatures] = useState([]); const featuresList = [ 'swimmingPool', 'privateGarden', 'parking', 'superLuxFinish', 'equippedKitchen', 'centralHeating', 'balcony', 'securitySystem', 'largeGarden', 'receptionHall', 'maidRoom', 'garage', 'seaView', 'centralAC', 'fruitGarden', 'storage' ]; const handleSubmit = async (e) => { e.preventDefault(); const propertyData = { ...formData, features: selectedFeatures, priceDisplay: { daily: formData.dailyPrice, monthly: formData.dailyPrice * 30, withCommission: calculateCommissionPrice(formData) }, location: { lat: formData.latitude, lng: formData.longitude, address: formData.address } }; try { await addProperty(propertyData); onSuccess?.(); onClose(); } catch (error) { console.error('Error adding property:', error); } }; const calculateCommissionPrice = (data) => { const { dailyPrice, commissionRate, commissionType } = data; const commission = (dailyPrice * commissionRate) / 100; switch(commissionType) { case COMMISSION_TYPE.FROM_TENANT: return dailyPrice + commission; case COMMISSION_TYPE.FROM_OWNER: return dailyPrice; case COMMISSION_TYPE.FROM_BOTH: return dailyPrice + (commission / 2); default: return dailyPrice; } }; return (

إضافة عقار جديد

موقع العقار (سيظهر على الخريطة)

setFormData({...formData, district: e.target.value})} className="w-full p-2 border rounded-lg" required />
setFormData({...formData, address: e.target.value})} className="w-full p-2 border rounded-lg" required />
setFormData({...formData, latitude: e.target.value})} className="w-full p-2 border rounded-lg" required />
setFormData({...formData, longitude: e.target.value})} className="w-full p-2 border rounded-lg" required />

السعر ونسبة الربح

setFormData({...formData, dailyPrice: Number(e.target.value)})} className="w-full p-2 border rounded-lg" required min="0" />

هذا السعر سيظهر على الخريطة

setFormData({...formData, commissionRate: Number(e.target.value)})} className="w-full p-2 border rounded-lg" min="0" max="100" step="0.1" required />

تفاصيل السعر بعد العمولة:

السعر الأصلي: {formData.dailyPrice} ل.س
العمولة: {(formData.dailyPrice * formData.commissionRate / 100)} ل.س
السعر النهائي: {calculateCommissionPrice(formData)} ل.س
setFormData({...formData, securityDeposit: Number(e.target.value)})} className="w-full p-2 border rounded-lg" min="0" />
{featuresList.map(feature => ( ))}
); }