// Простой сервис для отображения всплывающих уведомлений
import { ref, reactive } from 'vue';

const toasts = reactive([]);
let toastId = 0;

// Добавление нового уведомления
const add = (message, type = 'info', duration = 3000) => {
  const id = toastId++;
  toasts.push({ id, message, type, duration });
  
  // Автоматически убираем уведомление через duration + 300ms анимации
  setTimeout(() => {
    remove(id);
  }, duration + 300);
  
  return id;
};

// Удаление уведомления по ID
const remove = (id) => {
  const index = toasts.findIndex(toast => toast.id === id);
  if (index > -1) {
    toasts.splice(index, 1);
  }
};

// Показ информационного уведомления
const info = (message, duration) => add(message, 'info', duration);

// Показ уведомления об успехе
const success = (message, duration) => add(message, 'success', duration);

// Показ предупреждения
const warning = (message, duration) => add(message, 'warning', duration);

// Показ уведомления об ошибке
const error = (message, duration) => add(message, 'error', duration);

export default {
  toasts,
  add,
  remove,
  info,
  success,
  warning,
  error
};