import React, { useState, useEffect } from 'react'; import { Users, Plus, Edit, Trash2, Phone, Mail } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Badge } from '@/components/ui/badge'; import { useToast } from '@/hooks/use-toast'; import { apiClient } from '@/services/adminApi'; import { useLanguage } from '@/contexts/LanguageContext'; const Staff = () => { const { t } = useLanguage(); const [staff, setStaff] = useState([]); const [establishments, setEstablishments] = useState([]); const { toast } = useToast(); const [formData, setFormData] = useState({ firstName: '', lastName: '', email: '', phone: '', role: 'waiter', establishmentId: '', salary: 0 }); useEffect(() => { loadData(); }, []); const loadData = async () => { try { const [estResponse] = await Promise.all([ apiClient.get('/commerce/establishments') ]); setEstablishments(Array.isArray(estResponse) ? estResponse : (estResponse as any)?.establishments || []); // Mock staff data for now setStaff([]); } catch (error) { console.error('Error loading data:', error); } }; const handleSubmit = async () => { try { // This would be a call to create staff member toast({ title: 'Éxito', description: 'Empleado agregado correctamente' }); setFormData({ firstName: '', lastName: '', email: '', phone: '', role: 'waiter', establishmentId: '', salary: 0 }); } catch (error: any) { toast({ title: 'Error', description: error?.message || 'No se pudo agregar el empleado', variant: 'destructive' }); } }; return (

Gestión de Personal

Administra empleados y roles

Agregar Empleado
setFormData({ ...formData, firstName: e.target.value })} placeholder="Nombre" />
setFormData({ ...formData, lastName: e.target.value })} placeholder="Apellido" />
setFormData({ ...formData, email: e.target.value })} placeholder="email@ejemplo.com" />
setFormData({ ...formData, phone: e.target.value })} placeholder="+1 809 123 4567" />
setFormData({ ...formData, salary: parseFloat(e.target.value) })} placeholder="0.00" />
{staff.length === 0 ? (
No hay empleados registrados. Agrega el primer empleado.
) : ( staff.map((member) => (
{member.firstName} {member.lastName}

{member.role}

{member.email}
{member.phone}
{member.establishment?.name} ${member.salary}
)) )}
); }; export default Staff;