npm package: @itcor-kz/i-licenses-store
Description: 🐾 **Animals Store** — это хранилище на основе **Pinia** для управления данными о животных. Оно включает методы для загрузки псевдонимов, фильтров, меню и настроек, а также поддержку логирования.
Author: miril
Latest version: 0.0.2

# 📘 Animals Store

## 📌 Описание
🐾 **Animals Store** — это хранилище на основе **Pinia** для управления данными о животных. Оно включает методы для загрузки псевдонимов, фильтров, меню и настроек, а также поддержку логирования.

---

## 🚀 Установка и использование

### 📥 Установка зависимостей
Перед использованием убедитесь, что у вас установлены все необходимые пакеты:
```sh
npm install pinia vue @itcor-kz/i-messages @itcor-kz/i-server-store
```
Установка:
```sh
npm install @itcor-kz/i-animals-store
```


### 📦 Импорт хранилища в проект
```javascript
import { useAnimalsStore } from '@/store/animalsStore'
const animalsStore = useAnimalsStore()
```

---

## 🔹 Доступные методы

### 🔹 **`setBaseUrl(url: string)`**
🔗 **Устанавливает базовый URL API.**
- **Параметры:**
  - `url` – **строка с базовым адресом API**.

---

### 🔹 **`setSetting(data: IServerSettings)`**
⚙️ **Обновляет настройки хранилища.**
- **Параметры:**
  - `data` – **объект настроек `IServerSettings`**.

---

### 🔹 **`getAliases()`**
📋 **Загружает список псевдонимов (классификаций) с сервера.**
- **Возвращает:**
  - Объект `{ result, error, loading }` с полученными данными.

---

### 🔹 **`getSetting<T>(name: string, params?: any)`**
🔧 **Получает настройки с сервера по имени.**
- **Параметры:**
  - `name` – **строка, имя настройки**.
  - `params` – **дополнительные параметры запроса**.
- **Возвращает:**
  - **Данные настройки `T` или `null`**.

---

### 🔹 **`getMenusForDB()`**
📑 **Загружает меню пользователя из базы данных.**

---

### 🔹 **`getFilters(type: string)`**
🔍 **Загружает фильтры по указанному типу.**
- **Параметры:**
  - `type` – **строка, идентификатор типа фильтра**.
- **Возвращает:**
  - **Массив фильтров `FilterElement[] | null`**.

---

### 🔹 **`getMenu(menuName: 'cabinet_menu' | 'main_menu')`**
📌 **Получает элементы меню по его имени.**
- **Параметры:**
  - `menuName` – **название меню (`cabinet_menu` или `main_menu`)**.
- **Возвращает:**
  - **Массив элементов меню `IMainMenuItem[]`**.

---

### 🔹 **`getAliasesByType(type: number)`**
🔬 **Фильтрует псевдонимы по указанному типу.**
- **Параметры:**
  - `type` – **числовой идентификатор типа**.
- **Возвращает:**
  - **Отфильтрованный список `Aliases[] | undefined`**.

---

## 📌 Описание интерфейсов

### 🔹 **`IMainAnimalsSettings`**
⚙️ **Основные настройки хранилища животных.**
```ts
interface IMainAnimalsSettings {
  debug?: boolean;
}
```

---

### 🔹 **`FilterSelectItem`**
📑 **Элемент выпадающего списка фильтра.**
```ts
interface FilterSelectItem {
  title: string;
  value?: string;
  id?: string;
  parent_id?: string;
}
```

---

### 🔹 **`FilterElement`**
🎛 **Элемент фильтра.**
```ts
interface FilterElement {
  key: string;
  title: string;
  variant: 'boolean' | 'text' | 'select' | 'date';
  items?: FilterSelectItem[];
  itemsTypeId?: number;
  dependence?: string;
}
```

---

### 🔹 **`Aliases`**
📂 **Структура псевдонимов (классификаций) животных.**
```ts
interface Aliases {
  id: number;
  name: string;
  type: number;
  sub_type: number;
  del: boolean;
}
```

---

### 🔹 **`IMainMenuItem`**
📋 **Элемент основного меню.**
```ts
interface IMainMenuItem {
  name: string;
  to: string;
  icon?: string;
  children?: { name: string; to: string }[];
}
```

---

## 🔍 Логирование
🛠 Если **`settings.debug = true`**, в консоль будут выводиться отладочные сообщения.

---

## 📝 Лицензия
Этот проект распространяется под лицензией **MIT**.