# Індекс проекту alarm.minifinder.com

Система прийому та обробки тривог від різних охоронних/моніторингових провайдерів з інтеграцією в Minifinder (Tempest).

---

## Структура проекту

```
alarm.minifinder.com/
├── config.php              # Глобальна конфігурація (БД, сервери, пошта, IP-обмеження)
├── restrict.php            # Перевірка дозволених IP
├── restrict1.php           # Альтернативна перевірка IP (для окремих провайдерів)
│
├── AlarmService.php        # Базовий сервіс тривог (Tempest) — відправка на сервер
├── ReportService.php      # Сервіс звітів по тривогах
├── report.php             # Точка входу: звіти (GET: user, datefrom, dateto, alarmtype)
├── test_tempest.php       # Тест виклику Tempest AlarmService
├── tempestalarmxml.php    # XML для Tempest
├── test.html              # Тестова сторінка
│
├── library/               # Спільна бібліотека
│   ├── db.php             # Абстракція БД
│   ├── db/mysqli.php      # Драйвер MySQLi
│   └── geo_minifinder.php # Геолокація Minifinder
│
├── user_devices/          # Інтеграція з Wialon (goapi.minifinder.com)
│   ├── index.php         # Синхронізація пристроїв/тривог
│   ├── config.php
│   ├── define.php
│   └── config/*.json      # Конфіги по користувачах (наприклад alertocare.json)
│
├── vivasmarttech/
│   └── index.php         # Інтеграція Vivasmarttech (Wialon)
│
├── mqtt/                  # Провайдер: MQTT
│   ├── config.php
│   ├── xml.php            # Вхідні тривоги
│   ├── AlarmService.php
│   └── Logger.php
│
├── addsecure/             # Провайдер: Addsecure
│   ├── config.php
│   ├── AlarmService.php
│   └── send.php
│
├── alarm24/               # Провайдер: Alarm24
│   ├── config.php
│   ├── AlarmService.php
│   └── xml.php
│
├── avarn/                 # Провайдер: Avarn
│   ├── config.php
│   ├── AlarmService.php
│   └── xml.php
│
├── avarn_no/              # Провайдер: Avarn (без обмежень / інша конфігурація)
│   ├── config.php
│   ├── AlarmService.php
│   ├── AlarmServiceTest.php
│   ├── xml.php
│   └── xml_test.php
│
├── cubsec/                # Провайдер: Cubsec
│   ├── config.php
│   ├── AlarmService.php
│   └── xml.php
│
├── cubsec_old/            # Стара версія Cubsec
│   ├── config.php
│   ├── AlarmService.php
│   └── xml.php
│
├── harmonicare/           # Провайдер: Harmonicare
│   ├── config.php
│   ├── AlarmService.php
│   ├── xml.php
│   └── test_xml.php
│
├── securityassistance/    # Провайдер: Security Assistance
│   ├── config.php
│   ├── AlarmService.php
│   └── xml.php
│
├── composer.json          # Залежності: php-mqtt/client, guzzlehttp/guzzle
└── .gitignore
```

---

## Точки входу (entry points)

| Файл | Призначення |
|------|-------------|
| `report.php` | Звіти по тривогах: `?user=&datefrom=&dateto=&alarmtype=` |
| `user_devices/index.php` | Синхронізація пристроїв/тривог з Wialon |
| `vivasmarttech/index.php` | Обробка для Vivasmarttech |
| `*/xml.php` у кожному провайдері | Прийом вхідних тривог (HTTP/XML) від відповідного провайдера |

---

## Провайдери (інтеграції)

Кожен провайдер зазвичай містить:

- **config.php** — налаштування (БД, константи, підключення restrict)
- **AlarmService.php** — логіка обробки тривоги (БД, виклик зовнішніх сервісів)
- **xml.php** — обробник вхідного запиту (парсинг XML, виклик AlarmService)

| Каталог | Опис |
|---------|------|
| (корінь) | Tempest — базовий AlarmService та config |
| addsecure | Addsecure |
| alarm24 | Alarm24 |
| avarn | Avarn |
| avarn_no | Avarn (варіант без обмежень) |
| cubsec | Cubsec (поточна) |
| cubsec_old | Cubsec (стара версія) |
| harmonicare | Harmonicare |
| mqtt | MQTT-клієнт (php-mqtt/client) |
| securityassistance | Security Assistance |

---

## Залежності (Composer)

- `php-mqtt/client` ^1.8 — MQTT
- `guzzlehttp/guzzle` ^7.9 — HTTP-клієнт

---

## Конфігурація (config.php)

- **БД:** `DB_ENGINE`, `DB_HOST`, `DB_USER`, `DB_PASS`, `DB_NAME`
- **Час:** `Europe/Stockholm`, `_DB_TIME_ZONE`
- **Tempest:** `TEMPEST_CLIENT_CODE`, `TEMPEST_PIN_CODE`
- **Пошта:** `FROM_EMAIL`, `TO_EMAIL`
- **Сервери:** `PRIMARY_SERVER_IP`, `SECONDARY_SERVER_IP`, `SERVER_PORT`
- **Безпека:** `IP_RESTRICTION_ENABLED`, підключення `restrict.php` / `restrict1.php`

---

## Типи тривог (AlarmService)

- `fall` → MA  
- `sos` → QA  
- `low` → XT  
- `no_move` → NM  
- `test` → TD  

У звітах також: `geofence` → CX.

---

*Індекс згенеровано за структурою репозиторію alarm.minifinder.com.*
