Grendgi 1b8382a6ca
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 35s
Delay PF permit competitor removal
2026-06-05 12:36:15 +03:00
2026-06-05 12:36:15 +03:00
2026-06-04 14:55:41 +03:00
2026-06-04 14:55:41 +03:00
2026-06-05 10:18:42 +03:00
2026-06-05 10:18:42 +03:00

monitoring-pf

Сервис мониторинга объявлений PropertyFinder по DLD Permit Number для портала. Он хранит проекты, конкурирующие объявления и историю цен. Пользовательский UI живёт в Portal: portal/frontend/src/app/features/monitoring-pf; этот сервис отдаёт JSON API, Telegram bot и scheduler. Инфраструктурные процессы написаны на Go; Python оставлен для скраперов PropertyFinder/Bayut и внутреннего worker.

Назначение

  • отслеживать изменение цены конкурента;
  • фиксировать удаление/withdrawn объявлений;
  • находить новые объявления с тем же DLD Permit Number;
  • уведомлять ответственных сотрудников через Telegram.

Развёртывание

Сервис рассчитан на запуск только внутри k8s. Настройки лежат в k8s/configmap.yaml, секреты — в k8s/secrets.yaml. Локальный .env не используется.

kubectl apply -k k8s

API доступен через portal proxy /api/monitoring-pf/api/v1. Админские действия определяются ролью admin в Portal через X-User-Is-Admin=1; локального PIN-login больше нет.

Структура

cmd/
├── server/              Go JSON API для Portal
├── bot/                 Go Telegram-бот
├── scheduler/           Go фоновый сканер
internal/pf/             общий Go-код БД/API/Telegram
app/
├── worker.py            внутренний Python JSON worker для Go
├── config.py            настройки окружения для worker
├── db.py                SQLAlchemy engine/session для worker
├── models.py            Employee, Project, CompetitorListing, PriceHistory
├── scrapers/            PropertyFinder/Bayut парсеры
├── services/            бизнес-логика и уведомления
k8s/                     манифесты для портала
Description
No description provided
Readme 277 KiB
Languages
Go 51.5%
Python 47.2%
Dockerfile 0.7%
Shell 0.6%