import { useState, useEffect } from 'react' import { getDuplicates, mergeGuests } from '../api/api' import './DuplicateManager.css' function DuplicateManager({ eventId, onUpdate, onClose }) { const [duplicates, setDuplicates] = useState([]) const [loading, setLoading] = useState(true) const [selectedKeep, setSelectedKeep] = useState({}) const [merging, setMerging] = useState(false) const [duplicateBy, setDuplicateBy] = useState('phone') // 'phone' or 'name' useEffect(() => { loadDuplicates() }, [duplicateBy]) const loadDuplicates = async () => { try { setLoading(true) const response = await getDuplicates(eventId, duplicateBy) setDuplicates(response.duplicates || []) } catch (error) { console.error('Error loading duplicates:', error) alert('שגיאה בטעינת כפילויות') } finally { setLoading(false) } } const handleMerge = async (key, guests) => { const keepId = selectedKeep[key] if (!keepId) { alert('אנא בחר איזה אורח לשמור') return } const mergeIds = guests .filter(g => g.id !== keepId) .map(g => g.id) if (mergeIds.length === 0) { alert('לא נבחרו אורחים למיזוג') return } if (!window.confirm(`האם למזג ${mergeIds.length} אורחים לאורח הנבחר?`)) { return } try { setMerging(true) await mergeGuests(eventId, keepId, mergeIds) alert('האורחים מוזגו בהצלחה!') await loadDuplicates() if (onUpdate) onUpdate() } catch (error) { console.error('Error merging guests:', error) alert('שגיאה במיזוג אורחים') } finally { setMerging(false) } } if (loading) { return (

🔍 ניהול כפילויות

טוען כפילויות...
) } if (duplicates.length === 0) { return (

🔍 ניהול כפילויות

✅ לא נמצאו כפילויות! כל האורחים ייחודיים.

) } return (

🔍 ניהול כפילויות ({duplicates.length} {duplicateBy === 'phone' ? 'מספרי טלפון' : 'שמות'})

{duplicates.map((dup, index) => (

{duplicateBy === 'phone' ? `📞 ${dup.phone_number}` : `👤 ${dup.first_name} ${dup.last_name}`}

{dup.count} אורחים
{dup.guests.map((guest) => (
setSelectedKeep({...selectedKeep, [dup.key]: guest.id})} >
setSelectedKeep({...selectedKeep, [dup.key]: guest.id})} />

{guest.first_name} {guest.last_name}

אימייל: {guest.email || '-'}

טלפון: {guest.phone_number || '-'}

אישור: {guest.rsvp_status}

ארוחה: {guest.meal_preference || '-'}

פלאס ואן: {guest.has_plus_one ? `כן${guest.plus_one_name ? ` (${guest.plus_one_name})` : ''}` : 'לא'}

שולחן: {guest.table_number || '-'}

מקור: {guest.owner || '-'}

))}
))}
) } export default DuplicateManager