import Swal from 'sweetalert2';

/**
 * Notificación de éxito/error compartida por los bloques de la ficha de cliente, para que
 * los cuatro bloques (Cuentas Bancarias, Contactos, Documentos, Puntos de Suministro) usen el
 * mismo componente, ubicación y duración. Ver specs/014-ficha-cliente-dashboard-crud (US4).
 * Reutiliza SweetAlert2, ya el mecanismo estándar en el resto del dashboard.
 */
export const notifySuccess = (mensaje: string): void => {
    Swal.fire({
        title: 'Éxito',
        text: mensaje,
        icon: 'success',
        timer: 1800,
        showConfirmButton: false,
    });
};

export const notifyError = (mensaje?: string | null): void => {
    Swal.fire({
        title: 'Error',
        text: mensaje || 'Ocurrió un error inesperado.',
        icon: 'error',
    });
};

/**
 * Diálogo de confirmación estándar antes de una eliminación (o acción irreversible/poco frecuente).
 */
export const confirmDestructiveAction = async (opts: {
    title: string;
    text: string;
    confirmButtonText?: string;
}): Promise<boolean> => {
    const result = await Swal.fire({
        title: opts.title,
        text: opts.text,
        icon: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#dc3545',
        cancelButtonColor: '#6c757d',
        confirmButtonText: opts.confirmButtonText || 'Sí, continuar',
        cancelButtonText: 'Cancelar',
    });
    return result.isConfirmed;
};
