/* eslint-disable -- temporary disable for development/testing purposes */

import * as React from 'react';
import IconButton from '@mui/material/IconButton';
import Menu from '@mui/material/Menu';
import MenuItem from '@mui/material/MenuItem';
import MoreVertIcon from '@mui/icons-material/MoreVert';
import { useRouter } from 'next/navigation';
import DoctorRatesDialog from './DoctorRatesDialog'; // adjust path

interface RowActionsProps {
  rowId: string;
  onBroadcastClick: (userId: string) => void; // Prop to handle opening the Broadcast modal
  onAssignClick: (id: string, type: 'provider' | 'manager') => void; // Prop to handle assigning provider/manager
  onShowBanner?: (message: string, severity: 'success' | 'error') => void; // ✅ Add this line
  onTagUpdated?: () => void; // Prop to trigger parent data refresh

}

export function RowActions({ rowId,
  //  onBroadcastClick, onAssignClick,
    onShowBanner , onTagUpdated}: RowActionsProps) {
  const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);
  const open = Boolean(anchorEl);
  const router = useRouter();
  const [ratesOpen, setRatesOpen] = React.useState(false);
  const handleClick = (event: React.MouseEvent<HTMLElement>) => {
    setAnchorEl(event.currentTarget);
  };

  const handleClose = () => {
    setAnchorEl(null);
  };

  const handleDetails = (id: string) => {
    router.push(`/dashboard/customers/${id}`);
  };
  // const handleViewServedArea = (providerId: string) => {
  //   router.push(`/served-area/${providerId}`);
  // };
  return (
    <>
      <IconButton onClick={handleClick}>
        <MoreVertIcon />
      </IconButton>
      <Menu anchorEl={anchorEl} open={open} onClose={handleClose}>
     
        <MenuItem onClick={() => { handleClose(); handleDetails(rowId); }}>
        View Details</MenuItem>
        <MenuItem
  onClick={async () => {
    handleClose();
    try {
      const res = await fetch(`/admin/api/customers?id=${rowId}`, {
        method: 'DELETE',
      });
      const data = await res.json();
      if (res.ok) {
        onShowBanner?.('Customer deleted successfully', 'success'); // ✅ use this

        if (onTagUpdated) {
          onTagUpdated();
        }
  
        // Optionally: call a refresh function
      } else {
        onShowBanner?.(data.error || 'Failed to delete', 'error'); // ✅
      }
    } catch (error) {
      console.error('Delete error:', error);
      onShowBanner?.('Something went wrong', 'error'); // ✅
    }
  }}
>
  Delete
</MenuItem>
       
        <MenuItem  onClick={() => router.push(`/dashboard/providers/${rowId}/served-area`)}>
       Served Area
        </MenuItem>
        
        {/* Broadcast button */}
        {/* <MenuItem onClick={() => {
          onBroadcastClick(rowId); // This will trigger the parent handler to open the modal
          handleClose();
        }}>
          Schedule
        </MenuItem> */}
        
        <MenuItem onClick={() => { handleClose(); setRatesOpen(true); }}>
          Rates
        </MenuItem>
        <MenuItem onClick={() => router.push(`/dashboard/providers/${rowId}/tags`)}>Manage Tags</MenuItem>
      </Menu>

      {ratesOpen && (
  <DoctorRatesDialog
    open={ratesOpen}
    onClose={() => setRatesOpen(false)}
    doctorId={rowId}
    onShowBanner={onShowBanner}
    // onTagUpdated={onTagUpdated}
  />
)}
    </>
  );
}
