diff --git a/backend/config/__pycache__/__init__.cpython-311.pyc b/backend/config/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index bc92fc1..0000000 Binary files a/backend/config/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/config/__pycache__/__init__.cpython-313.pyc b/backend/config/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 2bea1eb..0000000 Binary files a/backend/config/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/backend/config/__pycache__/settings.cpython-311.pyc b/backend/config/__pycache__/settings.cpython-311.pyc deleted file mode 100644 index 31d9b10..0000000 Binary files a/backend/config/__pycache__/settings.cpython-311.pyc and /dev/null differ diff --git a/backend/config/__pycache__/settings.cpython-313.pyc b/backend/config/__pycache__/settings.cpython-313.pyc deleted file mode 100644 index 0fb7b1e..0000000 Binary files a/backend/config/__pycache__/settings.cpython-313.pyc and /dev/null differ diff --git a/backend/config/__pycache__/urls.cpython-311.pyc b/backend/config/__pycache__/urls.cpython-311.pyc deleted file mode 100644 index ecbfdce..0000000 Binary files a/backend/config/__pycache__/urls.cpython-311.pyc and /dev/null differ diff --git a/backend/config/__pycache__/urls.cpython-313.pyc b/backend/config/__pycache__/urls.cpython-313.pyc deleted file mode 100644 index c109547..0000000 Binary files a/backend/config/__pycache__/urls.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/__init__.cpython-311.pyc b/backend/contacts/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index daf8c78..0000000 Binary files a/backend/contacts/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/__init__.cpython-313.pyc b/backend/contacts/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index b4a7ce6..0000000 Binary files a/backend/contacts/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/models.cpython-311.pyc b/backend/contacts/__pycache__/models.cpython-311.pyc deleted file mode 100644 index f7e3369..0000000 Binary files a/backend/contacts/__pycache__/models.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/models.cpython-313.pyc b/backend/contacts/__pycache__/models.cpython-313.pyc deleted file mode 100644 index 57083dc..0000000 Binary files a/backend/contacts/__pycache__/models.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/serializers.cpython-311.pyc b/backend/contacts/__pycache__/serializers.cpython-311.pyc deleted file mode 100644 index e2244d9..0000000 Binary files a/backend/contacts/__pycache__/serializers.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/serializers.cpython-313.pyc b/backend/contacts/__pycache__/serializers.cpython-313.pyc deleted file mode 100644 index d0deb89..0000000 Binary files a/backend/contacts/__pycache__/serializers.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/urls.cpython-311.pyc b/backend/contacts/__pycache__/urls.cpython-311.pyc deleted file mode 100644 index 4ea6118..0000000 Binary files a/backend/contacts/__pycache__/urls.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/urls.cpython-313.pyc b/backend/contacts/__pycache__/urls.cpython-313.pyc deleted file mode 100644 index 07ad401..0000000 Binary files a/backend/contacts/__pycache__/urls.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/views.cpython-311.pyc b/backend/contacts/__pycache__/views.cpython-311.pyc deleted file mode 100644 index 9537f7d..0000000 Binary files a/backend/contacts/__pycache__/views.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/__pycache__/views.cpython-313.pyc b/backend/contacts/__pycache__/views.cpython-313.pyc deleted file mode 100644 index bc822aa..0000000 Binary files a/backend/contacts/__pycache__/views.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/map_membership_backfill.py b/backend/contacts/map_membership_backfill.py new file mode 100644 index 0000000..f434052 --- /dev/null +++ b/backend/contacts/map_membership_backfill.py @@ -0,0 +1,62 @@ +from contacts.models import Contact, NetworkMap, NetworkMapMembership, Relation + + +def contact_ids_from_relations(relations_qs): + contact_ids = set() + for relation in relations_qs.only('source_id', 'target_id'): + contact_ids.add(relation.source_id) + contact_ids.add(relation.target_id) + return contact_ids + + +def backfill_map_memberships_for_owner(owner): + """Добавляет на первую карту владельца контакты из его связей, если участников ещё нет.""" + if owner is None: + maps = NetworkMap.objects.filter(owner__isnull=True).order_by('id') + relations = Relation.objects.filter(owner__isnull=True) + else: + maps = NetworkMap.objects.filter(owner=owner).order_by('id') + relations = Relation.objects.filter(owner=owner) + + if not maps.exists(): + return 0 + + if NetworkMapMembership.objects.filter(map__in=maps).exists(): + return 0 + + contact_ids = contact_ids_from_relations(relations) + if not contact_ids: + return 0 + + if owner is None: + contacts = Contact.objects.filter(id__in=contact_ids, owner__isnull=True) + else: + contacts = Contact.objects.filter(id__in=contact_ids, owner=owner) + + target_map = maps.first() + created = 0 + for contact in contacts: + _, was_created = NetworkMapMembership.objects.get_or_create( + map=target_map, + contact=contact, + defaults={ + 'life_sphere': 'other', + 'network_circle': 'productivity', + 'importance': 3, + 'conflict_involvement': 3, + }, + ) + if was_created: + created += 1 + return created + + +def backfill_all_map_memberships(): + from django.contrib.auth import get_user_model + + User = get_user_model() + total = 0 + total += backfill_map_memberships_for_owner(None) + for user in User.objects.all(): + total += backfill_map_memberships_for_owner(user) + return total diff --git a/backend/contacts/migrations/0012_backfill_map_memberships.py b/backend/contacts/migrations/0012_backfill_map_memberships.py new file mode 100644 index 0000000..5af3eea --- /dev/null +++ b/backend/contacts/migrations/0012_backfill_map_memberships.py @@ -0,0 +1,68 @@ +from django.conf import settings +from django.db import migrations + + +def backfill_memberships(apps, schema_editor): + NetworkMap = apps.get_model('contacts', 'NetworkMap') + NetworkMapMembership = apps.get_model('contacts', 'NetworkMapMembership') + Relation = apps.get_model('contacts', 'Relation') + Contact = apps.get_model('contacts', 'Contact') + User = apps.get_model('auth', 'User') + + def backfill_for_owner(owner_id): + if owner_id is None: + maps = NetworkMap.objects.filter(owner__isnull=True).order_by('id') + relations = Relation.objects.filter(owner__isnull=True) + contact_owner_filter = {'owner__isnull': True} + else: + maps = NetworkMap.objects.filter(owner_id=owner_id).order_by('id') + relations = Relation.objects.filter(owner_id=owner_id) + contact_owner_filter = {'owner_id': owner_id} + + if not maps.exists(): + return 0 + if NetworkMapMembership.objects.filter(map__in=maps).exists(): + return 0 + + contact_ids = set() + for relation in relations.only('source_id', 'target_id'): + contact_ids.add(relation.source_id) + contact_ids.add(relation.target_id) + if not contact_ids: + return 0 + + contacts = Contact.objects.filter(id__in=contact_ids, **contact_owner_filter) + target_map = maps.first() + created = 0 + for contact in contacts: + _, was_created = NetworkMapMembership.objects.get_or_create( + map=target_map, + contact=contact, + defaults={ + 'life_sphere': 'other', + 'network_circle': 'productivity', + 'importance': 3, + 'conflict_involvement': 3, + }, + ) + if was_created: + created += 1 + return created + + total = backfill_for_owner(None) + for user in User.objects.all(): + total += backfill_for_owner(user.id) + if total: + print(f'Backfilled {total} network map memberships') + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('contacts', '0011_add_owner'), + ] + + operations = [ + migrations.RunPython(backfill_memberships, migrations.RunPython.noop), + ] diff --git a/backend/contacts/migrations/__pycache__/0001_initial.cpython-311.pyc b/backend/contacts/migrations/__pycache__/0001_initial.cpython-311.pyc deleted file mode 100644 index e89b4ec..0000000 Binary files a/backend/contacts/migrations/__pycache__/0001_initial.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/migrations/__pycache__/0001_initial.cpython-313.pyc b/backend/contacts/migrations/__pycache__/0001_initial.cpython-313.pyc deleted file mode 100644 index 7840bc6..0000000 Binary files a/backend/contacts/migrations/__pycache__/0001_initial.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/migrations/__pycache__/__init__.cpython-311.pyc b/backend/contacts/migrations/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 6fc2b85..0000000 Binary files a/backend/contacts/migrations/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/backend/contacts/migrations/__pycache__/__init__.cpython-313.pyc b/backend/contacts/migrations/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index e2942d4..0000000 Binary files a/backend/contacts/migrations/__pycache__/__init__.cpython-313.pyc and /dev/null differ diff --git a/backend/contacts/serializers.py b/backend/contacts/serializers.py index 3cc779d..98ec632 100644 --- a/backend/contacts/serializers.py +++ b/backend/contacts/serializers.py @@ -142,7 +142,7 @@ class NetworkMapMembershipSerializer(serializers.ModelSerializer): 'map_angle', 'map_radius_ratio', 'created_at', 'updated_at', ] - read_only_fields = ['id', 'created_at', 'updated_at', 'contact_name', 'map_name'] + read_only_fields = ['id', 'map', 'created_at', 'updated_at', 'contact_name', 'map_name'] class GraphSerializer(serializers.Serializer): diff --git a/backend/contacts_export.json b/backend/contacts_export.json new file mode 100644 index 0000000..e4b9103 --- /dev/null +++ b/backend/contacts_export.json @@ -0,0 +1,3320 @@ +[ + { + "name": "А.В. Бельченко", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "А.И. Машошин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "А.И. Стариков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора", + "life_sphere": "work", + "network_circle": "support", + "importance": 2, + "include_on_network_map": true, + "map_angle": -0.8552087129484989, + "map_radius_ratio": 0.42269786238269813 + }, + { + "name": "Аглиулин Шамиль", + "email": "", + "phone": "+79610464441", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Аглиулин Эмиль Шамилевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Аглиулина Милена Шамилевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Айрат Габидулин", + "email": "", + "phone": "+79963093836", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Александр Александрович Александров", + "email": "", + "phone": "+79013454293", + "organization": "", + "position": "", + "notes": "Главный координационный центр. Подполковник. 2024 учился в Военном институте связи в Спб. Зп 150 тр. Москва для людей. Наслаждается жизнью. Работает 1\\3. Показывал фото дочери.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Александр Александрович Елисеев", + "email": "", + "phone": "89214891842", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Александр Взрввозащита", + "email": "", + "phone": "8 911 166-65-65", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Александр Сайкин", + "email": "", + "phone": "+79295831376", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Александр Эдуардович Алексюк", + "email": "", + "phone": "+79212955441", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Алексей Викторович Мурзаев", + "email": "", + "phone": "+79214764550", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Алексей Кузнецов", + "email": "", + "phone": "89126503557", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Алексей Михайлович Кузенков", + "email": "", + "phone": "+79219619580", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Алексей Павлов", + "email": "", + "phone": "+7996450-29-19", + "organization": "", + "position": "", + "notes": "Вспыльчив. Любит поговорить. Обостренное чувство честности. Мнителен.\nНа НГ планировал уволиться (причины: вопросы с дочкой, и видимо товарищ предложил работу программистом с более высокой оплатой). Уговорили остаться уважаемые люди + выплатили высокую премию. Вышел на удаленку.", + "life_sphere": "work", + "network_circle": "productivity", + "importance": 2, + "include_on_network_map": true, + "map_angle": -0.9003680262979902, + "map_radius_ratio": 0.7277148351616779 + }, + { + "name": "Алексей Смирнов", + "email": "", + "phone": "", + "organization": "Яндекс", + "position": "Разработчик", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Алексей Ходосов", + "email": "dion26rus@gmail.com", + "phone": "89216786805", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 5, + "include_on_network_map": true, + "map_angle": -2.1903998180355364, + "map_radius_ratio": 0.7572564019050787 + }, + { + "name": "Алина Корги", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Алла Риелтер", + "email": "", + "phone": "8 962 720-36-73", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Анатолий Мысов", + "email": "", + "phone": "+79214730344", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Андрей", + "email": "", + "phone": "+7 (931) 964-80-47", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Андрей Наумов", + "email": "", + "phone": "+79522867684", + "organization": "", + "position": "", + "notes": "Женат. Дочь. Большой опыт в электромонтаже. Душа компании. Располагает к себе людей. Хорошо ладит с детьми. Мягкий. Добросовестный. Трудолюбивый.\nДальнозорк", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Андрей Николаев", + "email": "", + "phone": "89815639450", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Андрей Николаев Моск", + "email": "", + "phone": "+79257177037", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Андрей Шафранюк", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "к.т.н", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Андрюха Орлов", + "email": "", + "phone": "89642960683", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ануфриева Света", + "email": "", + "phone": "89539358648", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Артем", + "email": "", + "phone": "+7 995 913 77 50", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Артем Витальевич Лунин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Артем Востриков", + "email": "", + "phone": "89132703333", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Артем Клименко", + "email": "", + "phone": "+7 927 311-37-97", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Артур Ахмедзянов", + "email": "", + "phone": "+79602340617", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Баскаков Иван Анатольевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "В секторе Подшивалова", + "life_sphere": "work", + "network_circle": "productivity", + "importance": 1, + "include_on_network_map": true, + "map_angle": -1.2815174591796854, + "map_radius_ratio": 0.7291098116430261 + }, + { + "name": "Баходир 2", + "email": "", + "phone": "8 931 986-04-51", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Борис Александрович Летучев", + "email": "", + "phone": "89210857720", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Боря сосед", + "email": "", + "phone": "8 967 359-25-07", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Брага Юрий Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Быкова Валентина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора. Мой начальник.", + "life_sphere": "work", + "network_circle": "productivity", + "importance": 4, + "include_on_network_map": true, + "map_angle": -1.1976891021273357, + "map_radius_ratio": 0.5232625668206804 + }, + { + "name": "В.А. Потапов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "В.В. Прокопович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "В.С. Мельканович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Вадим Галкин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Вадим Сергеевич Гончаров", + "email": "", + "phone": "89212442006", + "organization": "", + "position": "", + "notes": "Служит в 14003. Начальник отделения. Планирует уволиться ~ 2026 г. Планирует продать однушку и заипотечиться в двушку, чтоб жить втроем на Комендане.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Вадим Харьков", + "email": "", + "phone": "+79112933468", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Валентина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Пользуется вниманием. 14 лет в НИИ. Натянутые отношения с др. начальниками групп. Хорошие отношения с высокими начальниками. Работает над сферой организации проектов. На корпаративе может выпить несколько рюмок водки.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Валентина Сергеевна Быкова", + "email": "", + "phone": "+7921350-22-93", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Валентинович Всеволод Шатов", + "email": "", + "phone": "+79214910619", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Василий", + "email": "", + "phone": "+79998128872", + "organization": "", + "position": "", + "notes": "Хочет реализовать интернет проект.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Вера", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Вероника Королева", + "email": "", + "phone": "+7-931-535-65-06", + "organization": "", + "position": "", + "notes": "Работает в детском саду.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Виктор Андронов", + "email": "", + "phone": "+79643429812", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Виктор Локтев", + "email": "", + "phone": "+79121719937", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Виталик Коптелов", + "email": "", + "phone": "+79144069116", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Виталик Фролов", + "email": "", + "phone": "8 906 194-41-46", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Витя Зос", + "email": "", + "phone": "+7 911 230-09-30", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Витя Опар2", + "email": "", + "phone": "89992003135", + "organization": "", + "position": "", + "notes": "Уехал в Тайланд на полгода. Занимается спекуляцией крипты.\nИмееет дачу. Любит копаться в земле. Предлагает во второй половине 2025 заняться потолками.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Влад Богомолов", + "email": "", + "phone": "8 911 824-16-27", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Владимир Артурович Березин", + "email": "", + "phone": "+79778491152", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Волкова Александра Юрьевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Галикеев Василь", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Георгий Осипков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Помогает с контроллерами.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Георгий Подшивалов", + "email": "", + "phone": "+7 921 310 1889", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Говоров Владимир Денисович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Горбунов Николай Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Горбунов Станислав Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Горюнов Евгений Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Гриненков Алексей Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "work", + "network_circle": "productivity", + "importance": 4, + "include_on_network_map": true, + "map_angle": -1.028486469607772, + "map_radius_ratio": 0.7748205144367196 + }, + { + "name": "Гриценков Алексей Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Гришманова Татьяна Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Гулюта Сергей Михайлович", + "email": "", + "phone": "89214856521", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Д.Г. Кореньков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Давлетшин Карим", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Давлетшин Рустам Ринатович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Даша Андреевна Драгун", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Демиденко Дмитрий Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Денис Гизатулин", + "email": "", + "phone": "+7 916 009-26-16", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Дмитрий Александрович Сечко", + "email": "", + "phone": "+79210775033", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Дмитрий Шторн", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Добрынин Антон", + "email": "", + "phone": "8 987 019-58-65", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Дочь", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Дружинин", + "email": "", + "phone": "+79195548628", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Душейко Владимир Владимирович", + "email": "", + "phone": "89216760552", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Е.А. Горбунов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Евгений", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Хорошо эрудирован. Не женат. Имеет 3д виртуальные очки. Приятен в общении. Проявил интерес к распечатанной турели.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Евгений Андрущенко", + "email": "", + "phone": "@EvgeniySPbRf", + "organization": "", + "position": "", + "notes": "Занимался стартапом по производству дронов полтора года.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Екатерина Наильевна Крикунова", + "email": "", + "phone": "89314171873", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Екатерина Тихова", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 5, + "include_on_network_map": true, + "map_angle": -2.1987504068282155, + "map_radius_ratio": 0.6139866023155224 + }, + { + "name": "Ефимова Анна Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Жена", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Женя Додонов", + "email": "", + "phone": "+79119158495", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Жуменков Сергей Васильевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Журавлёв Алексей Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Зайнулов Расим", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Зайнулов Ринат Рафикович", + "email": "", + "phone": "+7 937 358-82-37", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Зайнулов Рустам", + "email": "", + "phone": "+79991300454", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Зайцев Сергей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Звонков Павел", + "email": "", + "phone": "+79899568256", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Знаменский Даниил Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "И.В. Пашкевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Иван Витальевич Малимон", + "email": "", + "phone": "89115805720", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Иван Иванов", + "email": "ivan@test.com", + "phone": "", + "organization": "ООО Ромашка", + "position": "Директор", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Иванов Максим Станиславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Игорь Павлович Лобода", + "email": "", + "phone": "89314067638", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Икбол", + "email": "", + "phone": "89955918819", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Илдус Якупов", + "email": "", + "phone": "+79279571795", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ильнур Тимиргазин", + "email": "", + "phone": "+7 962 533-96-56", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ильнур Янтур", + "email": "", + "phone": "+79196228909", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Инсаф Якупов Анварович", + "email": "", + "phone": "+79128812711", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Катя", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Катя Полтавская", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Кирилл", + "email": "", + "phone": "+79117315490", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Клименко Андрей Федорович", + "email": "", + "phone": "89217818881", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Кобяшев Евгений Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Колесников Максим Павлович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Колесов Иван Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Комарова Яна Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Конюхов Геннадий Вячеславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Котляров", + "email": "", + "phone": "89112600481", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Котляров Вова", + "email": "", + "phone": "+7 915 733-92-97", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Кристина Мысцева", + "email": "", + "phone": "+79062805558", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ксюша Пулатова(Красникова)", + "email": "", + "phone": "+79516535670", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Кузнецов Кирилл Вячеславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Куликовских Юлия Валентиновна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "work", + "network_circle": "productivity", + "importance": 2, + "include_on_network_map": true, + "map_angle": -0.8176058670206239, + "map_radius_ratio": 0.5846707911319655 + }, + { + "name": "Л.А. Мартынова", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Лаврищев", + "email": "", + "phone": "89210866646", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Леонид Вилисов", + "email": "", + "phone": "+7 914 155-22-98", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Лилия Ильясовна Аглиуллина", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Лиля Аглиулина", + "email": "", + "phone": "+7 960 397-55-50", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Литовченко Сергей Анатольевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Люба", + "email": "", + "phone": "89212446797", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Любовь Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Маким Зайцев", + "email": "", + "phone": "+79276369798", + "organization": "", + "position": "", + "notes": "Занимается стройкой\nИграет в танки и знакомится с нужными людьми. Купил квартиру в Деме. Не женат. Обычно интересуется родителями.\nЛетом 2024 ездил на Дагестан. Жил в слоеном доме. НГ 2025 встречает с очередной девушкой.\nвстречает НГ с родителями девушки в Иглино\nСозванивались. В январе разошлись с партнером. Вместе работали 8 лет. Открыл свою фирму. СНН.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Максим Сергеевич Бабинцев", + "email": "", + "phone": "+79523657942", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Максим Филипович Шарп", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Малимон Витальевич", + "email": "", + "phone": "+7 911 007-25-75", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Малинков Юрий Анатольевич", + "email": "", + "phone": "+79212441013", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Малышев Владислав Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Малышкин Геннадий Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Малюк Андрей Андреевич", + "email": "", + "phone": "+7 996 502-13-72", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Малюк Андрей Новый", + "email": "", + "phone": "+7 978 968-41-17", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Мама", + "email": "", + "phone": "+7 931 376-43-75", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Марасёв Станислав Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Марат Жаксыбаевич Адылханов", + "email": "", + "phone": "+79314061507", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Марат Купаев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Марина Борисовна Малюк", + "email": "", + "phone": "+79115912127", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Марина Якупова", + "email": "", + "phone": "8 (981) 758-69-35", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Мария Петрова", + "email": "maria@test.com", + "phone": "", + "organization": "Газпром", + "position": "Аналитик", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Марков Антон Викторович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Милош Бороцкий", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Ездил на СВО 2024 году. По возвращении ию проблемы с коленом.\nДочь учится в частной школе.", + "life_sphere": "other", + "network_circle": "support", + "importance": 3, + "include_on_network_map": true, + "map_angle": -1.9500451065824036, + "map_radius_ratio": 0.44508807735531786 + }, + { + "name": "Митрохин Виктор Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Мухаметов Ильнар", + "email": "", + "phone": "+7 999 669-33-67", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Мясников Александр", + "email": "", + "phone": "+79210717608", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Надежда Манхеттен", + "email": "", + "phone": "8 921 898-25-85", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Назарова Александра Викторовна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Настя Малимон", + "email": "", + "phone": "+79116852335", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Настя Шакирова", + "email": "", + "phone": "+79214854728", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Наталья Мама Бори", + "email": "", + "phone": "+7 903 466-07-20", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Наур", + "email": "", + "phone": "@vozhd77", + "organization": "", + "position": "", + "notes": "На Донбассе. Воюет с 2014.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Некрасов Алексей Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ненашев Александр Валерьевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Никита Алексеевич Затеев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Николаев Антон Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Николаев Игорь Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Николай Александрович Горбаненко", + "email": "", + "phone": "89218139891", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Николай Крюков", + "email": "", + "phone": "+7 960 235-13-56", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Николай Петрович Черный", + "email": "", + "phone": "89210705228", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Новиков Вадим Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Оксана", + "email": "", + "phone": "+7 953 171-32-13", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Оксана Огнева", + "email": "", + "phone": "8 911 006-84-43", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Олег Викторович Лопатин", + "email": "", + "phone": "89214814746", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Онищенко", + "email": "", + "phone": "89121724618", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Осечкин Роман Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Осмолин Владимир Владимирович", + "email": "", + "phone": "89215581401", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Остапенко Никита Романович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Отец Малимона", + "email": "", + "phone": "+79218642151", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Отец Спб", + "email": "", + "phone": "+79110046322", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Павел", + "email": "", + "phone": "@Pavel0880", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Павел Локтев", + "email": "", + "phone": "8 (904) 613-59-68", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Павел Полтавский", + "email": "", + "phone": "+79214944569", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Павлов Алексей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Павлов Дмитрий Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Панфёрова Галина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Паша Полтавский", + "email": "", + "phone": "+79214944569", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Пашкевич Иван Владимирович", + "email": "", + "phone": "89119330006", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Петрова Юлия Михайловна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Подшивалов Георгий Андреевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора", + "life_sphere": "work", + "network_circle": "productivity", + "importance": 2, + "include_on_network_map": true, + "map_angle": -0.9105527507083097, + "map_radius_ratio": 0.6061601753065472 + }, + { + "name": "Поляков Сергей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Попова Анна Викторовна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Прокат Вело", + "email": "", + "phone": "88129093672", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Радик Ишмаев", + "email": "", + "phone": "89272495520", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Радмила", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Радмир", + "email": "", + "phone": "+79373021892", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Рамис Новый", + "email": "", + "phone": "8 962 693-28-84", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Рамис Сосед", + "email": "", + "phone": "+7 931 982-62-48", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Регина", + "email": "", + "phone": "89817262898", + "organization": "", + "position": "", + "notes": "Жена Икбола. Знакома с Сократом. Общительная.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ренат Наильевич Аитов", + "email": "", + "phone": "+79657986479", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Римма Якупова", + "email": "", + "phone": "+7 937 309-17-17", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ринат Аитов", + "email": "", + "phone": "89214870226", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ринат Ильгизович Якупов", + "email": "rinatka7@bk.ru", + "phone": "+79967980562", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Роман Ринатович Хусаинов", + "email": "", + "phone": "89214912576", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "С.А. Горбунов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Сафура", + "email": "", + "phone": "+79053542960", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Света Казань родственники", + "email": "", + "phone": "+79655908514", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Света Симановская", + "email": "", + "phone": "8 981 803-22-09", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Светлана Гулюта", + "email": "", + "phone": "89214835894", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Светлана Морозова", + "email": "", + "phone": "@Svetlana_Morozova_Electropribor", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Сергей Константинович Сурин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Офицер энергонадзора в Можайке. Зп 65 тр. Подрабатывает монтажом под ключ. 2 разряд по пауерлифтингу получил в Няндоме(показывал фото). Планирует уволиться в 2026 году.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Серега Емельянович", + "email": "", + "phone": "+79154189674", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Сечко Москва", + "email": "", + "phone": "+79046590150", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Смирнов Алексей Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Соня", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Стариков Александр Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Стас Маросев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "work", + "network_circle": "support", + "importance": 2, + "include_on_network_map": true, + "map_angle": -1.1519267319398419, + "map_radius_ratio": 0.3162066939560574 + }, + { + "name": "Степан", + "email": "", + "phone": "+7 914 849-46-02", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "study", + "network_circle": "support", + "importance": 3, + "include_on_network_map": true, + "map_angle": -0.3637426616180117, + "map_radius_ratio": 0.23658959671758967 + }, + { + "name": "Степан Королев", + "email": "st.korolev@list.ru", + "phone": "+79817014384", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "health", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": true, + "map_angle": 2.8817695777202577, + "map_radius_ratio": 0.529668414003954 + }, + { + "name": "Тарасов", + "email": "", + "phone": "+7 911 975-03-84", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Татьяна", + "email": "", + "phone": "+7 995 628 4534", + "organization": "", + "position": "", + "notes": "Бизнес вумен. Учится по вечерам - студентка. Много работатет - рискует перегореть.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Теща Малимона", + "email": "", + "phone": "+79112195520", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Тимофеев Виталий Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Топалов Владимир Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Тумский В Г", + "email": "", + "phone": "89314156919", + "organization": "", + "position": "", + "notes": "ФГУП СКБ \\\"Титан\\\"", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Тюрюхин Михаил Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Тюфряк Андрей Валерьевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Устин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Ушаков Сергей Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Филименко Ян Игоревич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Чапков Руслан Ильгизович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Шакиров Айдар", + "email": "", + "phone": "+79214854729", + "organization": "", + "position": "", + "notes": "https://yar.diskstation.me/dokuwiki/doku.php?id=wiki:parking:forum:forum", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Шива Вадим", + "email": "", + "phone": "+380661894022", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Шоди", + "email": "", + "phone": "8 921 641-40-97", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Эмиль Аглиулин", + "email": "", + "phone": "89603975444", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Яковлев А. А", + "email": "", + "phone": "89815539615", + "organization": "", + "position": "", + "notes": "\\\"ЦЕНКИ\\\" НИИСК", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Яковлев Сергей Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Якупов Илдус Анварович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "support", + "importance": 4, + "include_on_network_map": true, + "map_angle": -1.9142988887489316, + "map_radius_ratio": 0.1686147725190526 + }, + { + "name": "Якупова Света", + "email": "", + "phone": "+7 937 308-53-58", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + }, + { + "name": "Яна Яновна", + "email": "", + "phone": "89110063164", + "organization": "", + "position": "", + "notes": "Регистрация брака. 27.09.2024", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null + } +] \ No newline at end of file diff --git a/backend/db.sqlite3 b/backend/db.sqlite3 deleted file mode 100644 index df5bc94..0000000 Binary files a/backend/db.sqlite3 and /dev/null differ diff --git a/backend/graph/services.py b/backend/graph/services.py index 837b1ef..d1e27c2 100644 --- a/backend/graph/services.py +++ b/backend/graph/services.py @@ -29,19 +29,20 @@ def _network_maps_qs(user): return qs -def node_from_contact(contact): +def node_from_contact(contact, defaults=None): + defaults = defaults or {} return { 'id': contact.id, 'label': contact.name, 'title': '\n'.join(filter(None, [contact.organization, contact.position, contact.email])), 'group': contact.organization or 'default', + **defaults, } def node_from_membership(membership): contact = membership.contact - return { - **node_from_contact(contact), + return node_from_contact(contact, { 'life_sphere': membership.life_sphere, 'network_circle': membership.network_circle, 'importance': membership.importance, @@ -49,7 +50,22 @@ def node_from_membership(membership): 'map_angle': membership.map_angle, 'map_radius_ratio': membership.map_radius_ratio, 'membership_id': membership.id, - } + }) + + +def nodes_for_network_map(network_map, user): + memberships = list( + NetworkMapMembership.objects.filter(map_id=network_map.id) + .select_related('contact', 'map') + .order_by('contact__name') + ) + if use_jwt_auth() and user and user.is_authenticated: + memberships = [ + m for m in memberships + if m.map.owner_id == user.id and m.contact.owner_id == user.id + ] + + return [node_from_membership(m) for m in memberships] def edge_from_relation(relation): @@ -85,19 +101,8 @@ def build_network_map_graph(map_id=None, user=None): if not network_map: return {'nodes': [], 'edges': [], 'conflictology': False, 'conflict_subject': ''} - memberships = list( - NetworkMapMembership.objects.filter(map_id=map_id) - .select_related('contact', 'map') - .order_by('contact__name') - ) - if use_jwt_auth() and user and user.is_authenticated: - memberships = [ - m for m in memberships - if m.map.owner_id == user.id and m.contact.owner_id == user.id - ] - - allowed_ids = {m.contact_id for m in memberships} - nodes = [node_from_membership(m) for m in memberships] + nodes = nodes_for_network_map(network_map, user) + allowed_ids = {n['id'] for n in nodes} relations = _relations_qs(user) edges = [ edge_from_relation(r) diff --git a/backups/full-backup-2026-06-24-1711.json b/backups/full-backup-2026-06-24-1711.json new file mode 100644 index 0000000..3256226 --- /dev/null +++ b/backups/full-backup-2026-06-24-1711.json @@ -0,0 +1,4407 @@ +{ + "version": 2, + "exportedAt": "2026-06-24", + "source": "django-backup", + "contacts": [ + { + "id": 161, + "name": "А.В. Бельченко", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:48.040973", + "updated_at": "2026-03-15T05:42:48.040995", + "relations_count": 1 + }, + { + "id": 154, + "name": "А.И. Машошин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.596607", + "updated_at": "2026-03-15T05:42:46.596669", + "relations_count": 0 + }, + { + "id": 153, + "name": "А.И. Стариков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.438511", + "updated_at": "2026-05-14T02:29:17.773428", + "relations_count": 0 + }, + { + "id": 115, + "name": "Аглиулин Шамиль", + "email": "", + "phone": "+79610464441", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:39.717558", + "updated_at": "2026-03-15T05:42:39.717620", + "relations_count": 0 + }, + { + "id": 113, + "name": "Аглиулин Эмиль Шамилевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:39.418904", + "updated_at": "2026-03-15T05:42:39.418936", + "relations_count": 2 + }, + { + "id": 114, + "name": "Аглиулина Милена Шамилевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:39.564127", + "updated_at": "2026-03-15T05:42:39.564183", + "relations_count": 0 + }, + { + "id": 32, + "name": "Айрат Габидулин", + "email": "", + "phone": "+79963093836", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.423395", + "updated_at": "2026-03-15T05:42:24.423418", + "relations_count": 0 + }, + { + "id": 133, + "name": "Александр Александрович Александров", + "email": "", + "phone": "+79013454293", + "organization": "", + "position": "", + "notes": "Главный координационный центр. Подполковник. 2024 учился в Военном институте связи в Спб. Зп 150 тр. Москва для людей. Наслаждается жизнью. Работает 1\\3. Показывал фото дочери.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:42.831933", + "updated_at": "2026-03-15T05:42:42.832028", + "relations_count": 0 + }, + { + "id": 39, + "name": "Александр Александрович Елисеев", + "email": "", + "phone": "89214891842", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:25.585459", + "updated_at": "2026-03-15T05:42:25.585502", + "relations_count": 0 + }, + { + "id": 26, + "name": "Александр Взрввозащита", + "email": "", + "phone": "8 911 166-65-65", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:23.390347", + "updated_at": "2026-03-15T05:42:23.390410", + "relations_count": 0 + }, + { + "id": 93, + "name": "Александр Сайкин", + "email": "", + "phone": "+79295831376", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:34.857700", + "updated_at": "2026-03-15T05:42:34.857734", + "relations_count": 0 + }, + { + "id": 15, + "name": "Александр Эдуардович Алексюк", + "email": "", + "phone": "+79212955441", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:21.310263", + "updated_at": "2026-03-15T05:42:21.310325", + "relations_count": 0 + }, + { + "id": 71, + "name": "Алексей Викторович Мурзаев", + "email": "", + "phone": "+79214764550", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.846868", + "updated_at": "2026-03-15T05:42:30.846964", + "relations_count": 0 + }, + { + "id": 150, + "name": "Алексей Кузнецов", + "email": "", + "phone": "89126503557", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:45.811440", + "updated_at": "2026-03-15T05:42:45.811501", + "relations_count": 0 + }, + { + "id": 123, + "name": "Алексей Михайлович Кузенков", + "email": "", + "phone": "+79219619580", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.945453", + "updated_at": "2026-03-15T05:42:40.945507", + "relations_count": 0 + }, + { + "id": 139, + "name": "Алексей Павлов", + "email": "", + "phone": "+7996450-29-19", + "organization": "", + "position": "", + "notes": "Вспыльчив. Любит поговорить. Обостренное чувство честности. Мнителен.\nНа НГ планировал уволиться (причины: вопросы с дочкой, и видимо товарищ предложил работу программистом с более высокой оплатой). Уговорили остаться уважаемые люди + выплатили высокую премию. Вышел на удаленку.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:43.966363", + "updated_at": "2026-05-14T02:29:22.513547", + "relations_count": 0 + }, + { + "id": 3, + "name": "Алексей Смирнов", + "email": "", + "phone": "", + "organization": "Яндекс", + "position": "Разработчик", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-14T09:22:00.513396", + "updated_at": "2026-03-14T09:22:00.513406", + "relations_count": 2 + }, + { + "id": 109, + "name": "Алексей Ходосов", + "email": "dion26rus@gmail.com", + "phone": "89216786805", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:38.789024", + "updated_at": "2026-05-14T02:21:45.391178", + "relations_count": 1 + }, + { + "id": 131, + "name": "Алина Корги", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:42.433588", + "updated_at": "2026-03-15T05:42:42.433627", + "relations_count": 0 + }, + { + "id": 89, + "name": "Алла Риелтер", + "email": "", + "phone": "8 962 720-36-73", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:34.184510", + "updated_at": "2026-03-15T05:42:34.184601", + "relations_count": 0 + }, + { + "id": 73, + "name": "Анатолий Мысов", + "email": "", + "phone": "+79214730344", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:31.179714", + "updated_at": "2026-03-15T05:42:31.179736", + "relations_count": 0 + }, + { + "id": 126, + "name": "Андрей", + "email": "", + "phone": "+7 (931) 964-80-47", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:41.471021", + "updated_at": "2026-03-15T05:42:41.471054", + "relations_count": 0 + }, + { + "id": 146, + "name": "Андрей Наумов", + "email": "", + "phone": "+79522867684", + "organization": "", + "position": "", + "notes": "Женат. Дочь. Большой опыт в электромонтаже. Душа компании. Располагает к себе людей. Хорошо ладит с детьми. Мягкий. Добросовестный. Трудолюбивый.\nДальнозорк", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.997469", + "updated_at": "2026-03-15T05:42:44.997494", + "relations_count": 0 + }, + { + "id": 74, + "name": "Андрей Николаев", + "email": "", + "phone": "89815639450", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:31.329122", + "updated_at": "2026-03-15T05:42:31.329184", + "relations_count": 0 + }, + { + "id": 75, + "name": "Андрей Николаев Моск", + "email": "", + "phone": "+79257177037", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:31.519869", + "updated_at": "2026-03-15T05:42:31.519943", + "relations_count": 0 + }, + { + "id": 152, + "name": "Андрей Шафранюк", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "к.т.н", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.258186", + "updated_at": "2026-03-15T05:42:46.258209", + "relations_count": 0 + }, + { + "id": 81, + "name": "Андрюха Орлов", + "email": "", + "phone": "89642960683", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:32.655827", + "updated_at": "2026-03-15T05:42:32.655850", + "relations_count": 0 + }, + { + "id": 95, + "name": "Ануфриева Света", + "email": "", + "phone": "89539358648", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:35.346735", + "updated_at": "2026-03-15T05:42:35.346828", + "relations_count": 0 + }, + { + "id": 175, + "name": "Артем", + "email": "", + "phone": "+7 995 913 77 50", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:50.710218", + "updated_at": "2026-03-15T05:42:50.710270", + "relations_count": 0 + }, + { + "id": 60, + "name": "Артем Витальевич Лунин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:29.112836", + "updated_at": "2026-03-15T05:42:29.112870", + "relations_count": 0 + }, + { + "id": 167, + "name": "Артем Востриков", + "email": "", + "phone": "89132703333", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.307902", + "updated_at": "2026-03-15T05:42:49.307940", + "relations_count": 0 + }, + { + "id": 46, + "name": "Артем Клименко", + "email": "", + "phone": "+7 927 311-37-97", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:26.842013", + "updated_at": "2026-03-15T05:42:26.842035", + "relations_count": 0 + }, + { + "id": 20, + "name": "Артур Ахмедзянов", + "email": "", + "phone": "+79602340617", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:22.286368", + "updated_at": "2026-03-15T05:42:22.286400", + "relations_count": 2 + }, + { + "id": 179, + "name": "Баскаков Иван Анатольевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "В секторе Подшивалова", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:51.394701", + "updated_at": "2026-05-14T02:29:20.300137", + "relations_count": 0 + }, + { + "id": 6, + "name": "Баходир 2", + "email": "", + "phone": "8 931 986-04-51", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:19.967420", + "updated_at": "2026-03-15T05:42:19.967446", + "relations_count": 0 + }, + { + "id": 55, + "name": "Борис Александрович Летучев", + "email": "", + "phone": "89210857720", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.285100", + "updated_at": "2026-03-15T05:42:28.285124", + "relations_count": 0 + }, + { + "id": 99, + "name": "Боря сосед", + "email": "", + "phone": "8 967 359-25-07", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:36.046517", + "updated_at": "2026-03-15T05:42:36.046569", + "relations_count": 0 + }, + { + "id": 180, + "name": "Брага Юрий Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:51.541547", + "updated_at": "2026-03-15T05:42:51.541609", + "relations_count": 0 + }, + { + "id": 181, + "name": "Быкова Валентина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора. Мой начальник.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:51.762749", + "updated_at": "2026-05-14T02:37:55.609887", + "relations_count": 1 + }, + { + "id": 156, + "name": "В.А. Потапов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.875252", + "updated_at": "2026-03-15T05:42:46.875288", + "relations_count": 0 + }, + { + "id": 155, + "name": "В.В. Прокопович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.757341", + "updated_at": "2026-03-15T05:42:46.757392", + "relations_count": 0 + }, + { + "id": 158, + "name": "В.С. Мельканович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:47.509315", + "updated_at": "2026-03-15T05:42:47.509340", + "relations_count": 0 + }, + { + "id": 136, + "name": "Вадим Галкин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:43.388761", + "updated_at": "2026-03-15T05:42:43.388868", + "relations_count": 0 + }, + { + "id": 34, + "name": "Вадим Сергеевич Гончаров", + "email": "", + "phone": "89212442006", + "organization": "", + "position": "", + "notes": "Служит в 14003. Начальник отделения. Планирует уволиться ~ 2026 г. Планирует продать однушку и заипотечиться в двушку, чтоб жить втроем на Комендане.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.682908", + "updated_at": "2026-03-15T05:42:24.682939", + "relations_count": 0 + }, + { + "id": 108, + "name": "Вадим Харьков", + "email": "", + "phone": "+79112933468", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:38.587916", + "updated_at": "2026-03-15T05:42:38.587952", + "relations_count": 0 + }, + { + "id": 143, + "name": "Валентина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Пользуется вниманием. 14 лет в НИИ. Натянутые отношения с др. начальниками групп. Хорошие отношения с высокими начальниками. Работает над сферой организации проектов. На корпаративе может выпить несколько рюмок водки.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.620660", + "updated_at": "2026-03-15T05:42:44.620689", + "relations_count": 0 + }, + { + "id": 172, + "name": "Валентина Сергеевна Быкова", + "email": "", + "phone": "+7921350-22-93", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:50.069189", + "updated_at": "2026-03-15T05:42:50.069233", + "relations_count": 0 + }, + { + "id": 116, + "name": "Валентинович Всеволод Шатов", + "email": "", + "phone": "+79214910619", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:39.871525", + "updated_at": "2026-03-15T05:42:39.871548", + "relations_count": 0 + }, + { + "id": 24, + "name": "Василий", + "email": "", + "phone": "+79998128872", + "organization": "", + "position": "", + "notes": "Хочет реализовать интернет проект.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:23.072756", + "updated_at": "2026-03-15T05:42:23.072880", + "relations_count": 0 + }, + { + "id": 134, + "name": "Вера", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:43.076717", + "updated_at": "2026-03-15T05:42:43.076846", + "relations_count": 0 + }, + { + "id": 49, + "name": "Вероника Королева", + "email": "", + "phone": "+7-931-535-65-06", + "organization": "", + "position": "", + "notes": "Работает в детском саду.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:27.442141", + "updated_at": "2026-03-15T05:42:27.442211", + "relations_count": 0 + }, + { + "id": 125, + "name": "Виктор Андронов", + "email": "", + "phone": "+79643429812", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:41.249174", + "updated_at": "2026-03-15T05:42:41.249235", + "relations_count": 0 + }, + { + "id": 57, + "name": "Виктор Локтев", + "email": "", + "phone": "+79121719937", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.679492", + "updated_at": "2026-03-15T05:42:28.679516", + "relations_count": 0 + }, + { + "id": 47, + "name": "Виталик Коптелов", + "email": "", + "phone": "+79144069116", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:27.011628", + "updated_at": "2026-03-15T05:42:27.011684", + "relations_count": 0 + }, + { + "id": 107, + "name": "Виталик Фролов", + "email": "", + "phone": "8 906 194-41-46", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:38.454000", + "updated_at": "2026-03-15T05:42:38.454095", + "relations_count": 0 + }, + { + "id": 42, + "name": "Витя Зос", + "email": "", + "phone": "+7 911 230-09-30", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:26.068814", + "updated_at": "2026-03-15T05:42:26.068848", + "relations_count": 0 + }, + { + "id": 80, + "name": "Витя Опар2", + "email": "", + "phone": "89992003135", + "organization": "", + "position": "", + "notes": "Уехал в Тайланд на полгода. Занимается спекуляцией крипты.\nИмееет дачу. Любит копаться в земле. Предлагает во второй половине 2025 заняться потолками.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:32.467962", + "updated_at": "2026-03-15T05:42:32.468024", + "relations_count": 0 + }, + { + "id": 105, + "name": "Влад Богомолов", + "email": "", + "phone": "8 911 824-16-27", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:38.002532", + "updated_at": "2026-03-15T05:42:38.002588", + "relations_count": 0 + }, + { + "id": 21, + "name": "Владимир Артурович Березин", + "email": "", + "phone": "+79778491152", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:22.448377", + "updated_at": "2026-03-15T05:42:22.448400", + "relations_count": 0 + }, + { + "id": 182, + "name": "Волкова Александра Юрьевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:51.928588", + "updated_at": "2026-03-15T05:42:51.928611", + "relations_count": 0 + }, + { + "id": 25, + "name": "Галикеев Василь", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:23.210873", + "updated_at": "2026-03-15T05:42:23.210933", + "relations_count": 0 + }, + { + "id": 171, + "name": "Георгий Осипков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Помогает с контроллерами.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.859344", + "updated_at": "2026-03-15T05:42:49.859372", + "relations_count": 0 + }, + { + "id": 168, + "name": "Георгий Подшивалов", + "email": "", + "phone": "+7 921 310 1889", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.448599", + "updated_at": "2026-03-15T05:42:49.448651", + "relations_count": 0 + }, + { + "id": 183, + "name": "Говоров Владимир Денисович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:52.015169", + "updated_at": "2026-03-15T05:42:52.015199", + "relations_count": 0 + }, + { + "id": 184, + "name": "Горбунов Николай Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:52.209481", + "updated_at": "2026-03-15T05:42:52.209543", + "relations_count": 0 + }, + { + "id": 186, + "name": "Горбунов Станислав Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:52.580351", + "updated_at": "2026-03-15T05:42:52.580380", + "relations_count": 1 + }, + { + "id": 185, + "name": "Горюнов Евгений Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:52.399745", + "updated_at": "2026-03-15T05:42:52.399934", + "relations_count": 0 + }, + { + "id": 187, + "name": "Гриненков Алексей Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:52.758699", + "updated_at": "2026-05-14T02:29:13.796983", + "relations_count": 1 + }, + { + "id": 237, + "name": "Гриценков Алексей Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:51:56.021181", + "updated_at": "2026-03-15T05:51:56.021228", + "relations_count": 0 + }, + { + "id": 188, + "name": "Гришманова Татьяна Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:53.016275", + "updated_at": "2026-03-15T05:42:53.016338", + "relations_count": 0 + }, + { + "id": 69, + "name": "Гулюта Сергей Михайлович", + "email": "", + "phone": "89214856521", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.476344", + "updated_at": "2026-03-15T05:42:30.476420", + "relations_count": 0 + }, + { + "id": 163, + "name": "Д.Г. Кореньков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:48.694569", + "updated_at": "2026-03-15T05:42:48.694603", + "relations_count": 0 + }, + { + "id": 45, + "name": "Давлетшин Карим", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:26.694727", + "updated_at": "2026-03-15T05:42:26.694763", + "relations_count": 0 + }, + { + "id": 90, + "name": "Давлетшин Рустам Ринатович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:34.445382", + "updated_at": "2026-03-15T05:42:34.445455", + "relations_count": 0 + }, + { + "id": 130, + "name": "Даша Андреевна Драгун", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:42.253213", + "updated_at": "2026-03-15T05:42:42.253270", + "relations_count": 0 + }, + { + "id": 189, + "name": "Демиденко Дмитрий Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:53.189563", + "updated_at": "2026-03-15T05:42:53.189615", + "relations_count": 0 + }, + { + "id": 33, + "name": "Денис Гизатулин", + "email": "", + "phone": "+7 916 009-26-16", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.550248", + "updated_at": "2026-03-15T05:42:24.550276", + "relations_count": 0 + }, + { + "id": 97, + "name": "Дмитрий Александрович Сечко", + "email": "", + "phone": "+79210775033", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:35.640202", + "updated_at": "2026-03-15T05:42:35.640236", + "relations_count": 0 + }, + { + "id": 178, + "name": "Дмитрий Шторн", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:51.219239", + "updated_at": "2026-03-15T05:42:51.219274", + "relations_count": 0 + }, + { + "id": 19, + "name": "Добрынин Антон", + "email": "", + "phone": "8 987 019-58-65", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:22.154606", + "updated_at": "2026-03-15T05:42:22.154637", + "relations_count": 0 + }, + { + "id": 129, + "name": "Дочь", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:42.023423", + "updated_at": "2026-03-15T05:42:42.023498", + "relations_count": 0 + }, + { + "id": 38, + "name": "Дружинин", + "email": "", + "phone": "+79195548628", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:25.437295", + "updated_at": "2026-03-15T05:42:25.437329", + "relations_count": 0 + }, + { + "id": 29, + "name": "Душейко Владимир Владимирович", + "email": "", + "phone": "89216760552", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:23.965053", + "updated_at": "2026-03-15T05:42:23.965086", + "relations_count": 0 + }, + { + "id": 160, + "name": "Е.А. Горбунов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:47.898581", + "updated_at": "2026-03-15T05:42:47.898632", + "relations_count": 0 + }, + { + "id": 164, + "name": "Евгений", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Хорошо эрудирован. Не женат. Имеет 3д виртуальные очки. Приятен в общении. Проявил интерес к распечатанной турели.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:48.816257", + "updated_at": "2026-03-15T05:42:48.816314", + "relations_count": 0 + }, + { + "id": 149, + "name": "Евгений Андрущенко", + "email": "", + "phone": "@EvgeniySPbRf", + "organization": "", + "position": "", + "notes": "Занимался стартапом по производству дронов полтора года.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:45.637821", + "updated_at": "2026-03-15T05:42:45.637864", + "relations_count": 0 + }, + { + "id": 52, + "name": "Екатерина Наильевна Крикунова", + "email": "", + "phone": "89314171873", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:27.860197", + "updated_at": "2026-03-15T05:42:27.860221", + "relations_count": 0 + }, + { + "id": 147, + "name": "Екатерина Тихова", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:45.186628", + "updated_at": "2026-05-17T04:25:31.045777", + "relations_count": 1 + }, + { + "id": 190, + "name": "Ефимова Анна Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:53.360200", + "updated_at": "2026-03-15T05:42:53.360224", + "relations_count": 0 + }, + { + "id": 127, + "name": "Жена", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:41.628079", + "updated_at": "2026-03-15T05:42:41.628134", + "relations_count": 0 + }, + { + "id": 37, + "name": "Женя Додонов", + "email": "", + "phone": "+79119158495", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:25.229329", + "updated_at": "2026-03-15T05:42:25.229378", + "relations_count": 1 + }, + { + "id": 192, + "name": "Жуменков Сергей Васильевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:53.674630", + "updated_at": "2026-03-15T05:42:53.674681", + "relations_count": 2 + }, + { + "id": 191, + "name": "Журавлёв Алексей Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:53.517587", + "updated_at": "2026-03-15T05:42:53.517619", + "relations_count": 0 + }, + { + "id": 87, + "name": "Зайнулов Расим", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:33.807418", + "updated_at": "2026-03-15T05:42:33.807441", + "relations_count": 0 + }, + { + "id": 88, + "name": "Зайнулов Ринат Рафикович", + "email": "", + "phone": "+7 937 358-82-37", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:33.965442", + "updated_at": "2026-03-15T05:42:33.965506", + "relations_count": 0 + }, + { + "id": 92, + "name": "Зайнулов Рустам", + "email": "", + "phone": "+79991300454", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:34.715546", + "updated_at": "2026-03-15T05:42:34.715608", + "relations_count": 0 + }, + { + "id": 193, + "name": "Зайцев Сергей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:53.909059", + "updated_at": "2026-03-15T05:42:53.909094", + "relations_count": 0 + }, + { + "id": 82, + "name": "Звонков Павел", + "email": "", + "phone": "+79899568256", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:32.754444", + "updated_at": "2026-03-15T05:42:32.754466", + "relations_count": 0 + }, + { + "id": 194, + "name": "Знаменский Даниил Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:54.053719", + "updated_at": "2026-03-15T05:42:54.053767", + "relations_count": 0 + }, + { + "id": 157, + "name": "И.В. Пашкевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.990213", + "updated_at": "2026-03-15T05:42:46.990246", + "relations_count": 1 + }, + { + "id": 62, + "name": "Иван Витальевич Малимон", + "email": "", + "phone": "89115805720", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:29.432589", + "updated_at": "2026-03-15T05:42:29.432621", + "relations_count": 0 + }, + { + "id": 1, + "name": "Иван Иванов", + "email": "ivan@test.com", + "phone": "", + "organization": "ООО Ромашка", + "position": "Директор", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-14T09:22:00.510250", + "updated_at": "2026-03-14T09:22:00.510270", + "relations_count": 5 + }, + { + "id": 195, + "name": "Иванов Максим Станиславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:54.277661", + "updated_at": "2026-03-15T05:42:54.277753", + "relations_count": 0 + }, + { + "id": 56, + "name": "Игорь Павлович Лобода", + "email": "", + "phone": "89314067638", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.482372", + "updated_at": "2026-03-15T05:42:28.482405", + "relations_count": 0 + }, + { + "id": 174, + "name": "Икбол", + "email": "", + "phone": "89955918819", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:50.521550", + "updated_at": "2026-03-15T05:42:50.521583", + "relations_count": 0 + }, + { + "id": 118, + "name": "Илдус Якупов", + "email": "", + "phone": "+79279571795", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.186406", + "updated_at": "2026-03-15T05:42:40.186461", + "relations_count": 0 + }, + { + "id": 104, + "name": "Ильнур Тимиргазин", + "email": "", + "phone": "+7 962 533-96-56", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:37.781757", + "updated_at": "2026-03-15T05:42:37.781780", + "relations_count": 0 + }, + { + "id": 122, + "name": "Ильнур Янтур", + "email": "", + "phone": "+79196228909", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.758321", + "updated_at": "2026-03-15T05:42:40.758344", + "relations_count": 0 + }, + { + "id": 17, + "name": "Инсаф Якупов Анварович", + "email": "", + "phone": "+79128812711", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:21.784841", + "updated_at": "2026-03-15T05:42:21.784872", + "relations_count": 0 + }, + { + "id": 137, + "name": "Катя", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:43.597679", + "updated_at": "2026-03-15T05:42:43.597741", + "relations_count": 0 + }, + { + "id": 142, + "name": "Катя Полтавская", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.489662", + "updated_at": "2026-03-15T05:42:44.489694", + "relations_count": 0 + }, + { + "id": 145, + "name": "Кирилл", + "email": "", + "phone": "+79117315490", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.885619", + "updated_at": "2026-03-15T05:42:44.885650", + "relations_count": 0 + }, + { + "id": 106, + "name": "Клименко Андрей Федорович", + "email": "", + "phone": "89217818881", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:38.242982", + "updated_at": "2026-03-15T05:42:38.243003", + "relations_count": 0 + }, + { + "id": 196, + "name": "Кобяшев Евгений Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:54.437218", + "updated_at": "2026-03-15T05:42:54.437268", + "relations_count": 0 + }, + { + "id": 197, + "name": "Колесников Максим Павлович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:54.590576", + "updated_at": "2026-03-15T05:42:54.590598", + "relations_count": 0 + }, + { + "id": 198, + "name": "Колесов Иван Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:54.740101", + "updated_at": "2026-03-15T05:42:54.740195", + "relations_count": 0 + }, + { + "id": 199, + "name": "Комарова Яна Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:54.905062", + "updated_at": "2026-03-15T05:42:54.905085", + "relations_count": 0 + }, + { + "id": 200, + "name": "Конюхов Геннадий Вячеславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:55.006505", + "updated_at": "2026-03-15T05:42:55.006567", + "relations_count": 0 + }, + { + "id": 50, + "name": "Котляров", + "email": "", + "phone": "89112600481", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:27.609595", + "updated_at": "2026-03-15T05:42:27.609626", + "relations_count": 0 + }, + { + "id": 30, + "name": "Котляров Вова", + "email": "", + "phone": "+7 915 733-92-97", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.101293", + "updated_at": "2026-03-15T05:42:24.101511", + "relations_count": 0 + }, + { + "id": 72, + "name": "Кристина Мысцева", + "email": "", + "phone": "+79062805558", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.995906", + "updated_at": "2026-03-15T05:42:30.995941", + "relations_count": 0 + }, + { + "id": 51, + "name": "Ксюша Пулатова(Красникова)", + "email": "", + "phone": "+79516535670", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:27.723198", + "updated_at": "2026-03-15T05:42:27.723250", + "relations_count": 0 + }, + { + "id": 201, + "name": "Кузнецов Кирилл Вячеславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:55.230256", + "updated_at": "2026-03-15T05:42:55.230279", + "relations_count": 0 + }, + { + "id": 202, + "name": "Куликовских Юлия Валентиновна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:55.411693", + "updated_at": "2026-05-14T02:29:12.002232", + "relations_count": 0 + }, + { + "id": 159, + "name": "Л.А. Мартынова", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:47.698918", + "updated_at": "2026-03-15T05:42:47.698956", + "relations_count": 0 + }, + { + "id": 54, + "name": "Лаврищев", + "email": "", + "phone": "89210866646", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.151721", + "updated_at": "2026-03-15T05:42:28.151848", + "relations_count": 0 + }, + { + "id": 27, + "name": "Леонид Вилисов", + "email": "", + "phone": "+7 914 155-22-98", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:23.620436", + "updated_at": "2026-03-15T05:42:23.620460", + "relations_count": 0 + }, + { + "id": 10, + "name": "Лилия Ильясовна Аглиуллина", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:20.522723", + "updated_at": "2026-03-15T05:42:20.522781", + "relations_count": 0 + }, + { + "id": 9, + "name": "Лиля Аглиулина", + "email": "", + "phone": "+7 960 397-55-50", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:20.345590", + "updated_at": "2026-03-15T05:42:20.345656", + "relations_count": 0 + }, + { + "id": 203, + "name": "Литовченко Сергей Анатольевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:55.586908", + "updated_at": "2026-03-15T05:42:55.586938", + "relations_count": 0 + }, + { + "id": 61, + "name": "Люба", + "email": "", + "phone": "89212446797", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:29.268614", + "updated_at": "2026-03-15T05:42:29.268666", + "relations_count": 0 + }, + { + "id": 151, + "name": "Любовь Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:46.004330", + "updated_at": "2026-03-15T05:42:46.004404", + "relations_count": 0 + }, + { + "id": 41, + "name": "Маким Зайцев", + "email": "", + "phone": "+79276369798", + "organization": "", + "position": "", + "notes": "Занимается стройкой\nИграет в танки и знакомится с нужными людьми. Купил квартиру в Деме. Не женат. Обычно интересуется родителями.\nЛетом 2024 ездил на Дагестан. Жил в слоеном доме. НГ 2025 встречает с очередной девушкой.\nвстречает НГ с родителями девушки в Иглино\nСозванивались. В январе разошлись с партнером. Вместе работали 8 лет. Открыл свою фирму. СНН.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:25.934153", + "updated_at": "2026-03-15T05:42:25.934186", + "relations_count": 0 + }, + { + "id": 138, + "name": "Максим Сергеевич Бабинцев", + "email": "", + "phone": "+79523657942", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:43.798677", + "updated_at": "2026-03-15T05:42:43.798738", + "relations_count": 0 + }, + { + "id": 177, + "name": "Максим Филипович Шарп", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:51.046857", + "updated_at": "2026-03-15T05:42:51.046902", + "relations_count": 0 + }, + { + "id": 28, + "name": "Малимон Витальевич", + "email": "", + "phone": "+7 911 007-25-75", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:23.804031", + "updated_at": "2026-03-15T05:42:23.804123", + "relations_count": 0 + }, + { + "id": 16, + "name": "Малинков Юрий Анатольевич", + "email": "", + "phone": "+79212441013", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:21.586650", + "updated_at": "2026-03-15T05:42:21.586764", + "relations_count": 0 + }, + { + "id": 204, + "name": "Малышев Владислав Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:55.856786", + "updated_at": "2026-03-15T05:42:55.856851", + "relations_count": 0 + }, + { + "id": 205, + "name": "Малышкин Геннадий Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.021720", + "updated_at": "2026-03-15T05:42:56.021742", + "relations_count": 0 + }, + { + "id": 5, + "name": "Малюк Андрей Андреевич", + "email": "", + "phone": "+7 996 502-13-72", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:19.849063", + "updated_at": "2026-03-15T05:42:19.849090", + "relations_count": 0 + }, + { + "id": 76, + "name": "Малюк Андрей Новый", + "email": "", + "phone": "+7 978 968-41-17", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:31.688292", + "updated_at": "2026-03-15T05:42:31.688328", + "relations_count": 0 + }, + { + "id": 67, + "name": "Мама", + "email": "", + "phone": "+7 931 376-43-75", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.160936", + "updated_at": "2026-03-15T05:42:30.160960", + "relations_count": 0 + }, + { + "id": 206, + "name": "Марасёв Станислав Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.212143", + "updated_at": "2026-03-15T05:42:56.212208", + "relations_count": 0 + }, + { + "id": 11, + "name": "Марат Жаксыбаевич Адылханов", + "email": "", + "phone": "+79314061507", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:20.721503", + "updated_at": "2026-03-15T05:42:20.721558", + "relations_count": 0 + }, + { + "id": 53, + "name": "Марат Купаев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.015164", + "updated_at": "2026-03-15T05:42:28.015198", + "relations_count": 0 + }, + { + "id": 66, + "name": "Марина Борисовна Малюк", + "email": "", + "phone": "+79115912127", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.033225", + "updated_at": "2026-03-15T05:42:30.033287", + "relations_count": 0 + }, + { + "id": 120, + "name": "Марина Якупова", + "email": "", + "phone": "8 (981) 758-69-35", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.414894", + "updated_at": "2026-03-15T05:42:40.414917", + "relations_count": 0 + }, + { + "id": 2, + "name": "Мария Петрова", + "email": "maria@test.com", + "phone": "", + "organization": "Газпром", + "position": "Аналитик", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-14T09:22:00.512129", + "updated_at": "2026-03-14T09:22:00.512140", + "relations_count": 2 + }, + { + "id": 207, + "name": "Марков Антон Викторович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.404157", + "updated_at": "2026-03-15T05:42:56.404193", + "relations_count": 0 + }, + { + "id": 140, + "name": "Милош Бороцкий", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Ездил на СВО 2024 году. По возвращении ию проблемы с коленом.\nДочь учится в частной школе.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.124123", + "updated_at": "2026-05-14T02:29:36.836569", + "relations_count": 0 + }, + { + "id": 208, + "name": "Митрохин Виктор Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.539372", + "updated_at": "2026-03-15T05:42:56.539432", + "relations_count": 0 + }, + { + "id": 43, + "name": "Мухаметов Ильнар", + "email": "", + "phone": "+7 999 669-33-67", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:26.346481", + "updated_at": "2026-03-15T05:42:26.346515", + "relations_count": 0 + }, + { + "id": 14, + "name": "Мясников Александр", + "email": "", + "phone": "+79210717608", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:21.153553", + "updated_at": "2026-03-15T05:42:21.153629", + "relations_count": 0 + }, + { + "id": 68, + "name": "Надежда Манхеттен", + "email": "", + "phone": "8 921 898-25-85", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.333943", + "updated_at": "2026-03-15T05:42:30.334007", + "relations_count": 0 + }, + { + "id": 209, + "name": "Назарова Александра Викторовна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.695813", + "updated_at": "2026-03-15T05:42:56.695874", + "relations_count": 0 + }, + { + "id": 63, + "name": "Настя Малимон", + "email": "", + "phone": "+79116852335", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:29.557319", + "updated_at": "2026-03-15T05:42:29.557349", + "relations_count": 0 + }, + { + "id": 112, + "name": "Настя Шакирова", + "email": "", + "phone": "+79214854728", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:39.288538", + "updated_at": "2026-03-15T05:42:39.288597", + "relations_count": 0 + }, + { + "id": 22, + "name": "Наталья Мама Бори", + "email": "", + "phone": "+7 903 466-07-20", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:22.591864", + "updated_at": "2026-03-15T05:42:22.591911", + "relations_count": 0 + }, + { + "id": 176, + "name": "Наур", + "email": "", + "phone": "@vozhd77", + "organization": "", + "position": "", + "notes": "На Донбассе. Воюет с 2014.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:50.879448", + "updated_at": "2026-03-15T05:42:50.879500", + "relations_count": 0 + }, + { + "id": 210, + "name": "Некрасов Алексей Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.839335", + "updated_at": "2026-03-15T05:42:56.839357", + "relations_count": 0 + }, + { + "id": 218, + "name": "Ненашев Александр Валерьевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:58.504178", + "updated_at": "2026-03-15T05:42:58.504208", + "relations_count": 0 + }, + { + "id": 170, + "name": "Никита Алексеевич Затеев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.721524", + "updated_at": "2026-03-15T05:42:49.721579", + "relations_count": 0 + }, + { + "id": 219, + "name": "Николаев Антон Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:58.695709", + "updated_at": "2026-03-15T05:42:58.695742", + "relations_count": 0 + }, + { + "id": 211, + "name": "Николаев Игорь Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:56.952521", + "updated_at": "2026-03-15T05:42:56.952560", + "relations_count": 0 + }, + { + "id": 35, + "name": "Николай Александрович Горбаненко", + "email": "", + "phone": "89218139891", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.799763", + "updated_at": "2026-03-15T05:42:24.799844", + "relations_count": 0 + }, + { + "id": 166, + "name": "Николай Крюков", + "email": "", + "phone": "+7 960 235-13-56", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.132857", + "updated_at": "2026-03-15T05:42:49.132894", + "relations_count": 0 + }, + { + "id": 111, + "name": "Николай Петрович Черный", + "email": "", + "phone": "89210705228", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:39.122687", + "updated_at": "2026-03-15T05:42:39.122711", + "relations_count": 0 + }, + { + "id": 212, + "name": "Новиков Вадим Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:57.165483", + "updated_at": "2026-03-15T05:42:57.165540", + "relations_count": 0 + }, + { + "id": 128, + "name": "Оксана", + "email": "", + "phone": "+7 953 171-32-13", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:41.844615", + "updated_at": "2026-03-15T05:42:41.844665", + "relations_count": 0 + }, + { + "id": 78, + "name": "Оксана Огнева", + "email": "", + "phone": "8 911 006-84-43", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:32.128593", + "updated_at": "2026-03-15T05:42:32.128615", + "relations_count": 0 + }, + { + "id": 59, + "name": "Олег Викторович Лопатин", + "email": "", + "phone": "89214814746", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.967747", + "updated_at": "2026-03-15T05:42:28.967770", + "relations_count": 0 + }, + { + "id": 79, + "name": "Онищенко", + "email": "", + "phone": "89121724618", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:32.323844", + "updated_at": "2026-03-15T05:42:32.323931", + "relations_count": 0 + }, + { + "id": 220, + "name": "Осечкин Роман Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:58.814577", + "updated_at": "2026-03-15T05:42:58.814638", + "relations_count": 0 + }, + { + "id": 221, + "name": "Осмолин Владимир Владимирович", + "email": "", + "phone": "89215581401", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:58.979122", + "updated_at": "2026-03-15T05:42:58.979146", + "relations_count": 0 + }, + { + "id": 222, + "name": "Остапенко Никита Романович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:59.178463", + "updated_at": "2026-03-15T05:42:59.178505", + "relations_count": 0 + }, + { + "id": 64, + "name": "Отец Малимона", + "email": "", + "phone": "+79218642151", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:29.746834", + "updated_at": "2026-05-10T07:24:10.889352", + "relations_count": 0 + }, + { + "id": 101, + "name": "Отец Спб", + "email": "", + "phone": "+79110046322", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:36.471719", + "updated_at": "2026-03-15T05:42:36.471754", + "relations_count": 0 + }, + { + "id": 124, + "name": "Павел", + "email": "", + "phone": "@Pavel0880", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:41.105890", + "updated_at": "2026-03-15T05:42:41.105948", + "relations_count": 0 + }, + { + "id": 58, + "name": "Павел Локтев", + "email": "", + "phone": "8 (904) 613-59-68", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:28.785208", + "updated_at": "2026-03-15T05:42:28.785257", + "relations_count": 0 + }, + { + "id": 141, + "name": "Павел Полтавский", + "email": "", + "phone": "+79214944569", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.301654", + "updated_at": "2026-03-15T05:42:44.301688", + "relations_count": 0 + }, + { + "id": 223, + "name": "Павлов Алексей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:59.377177", + "updated_at": "2026-03-15T05:42:59.377198", + "relations_count": 0 + }, + { + "id": 213, + "name": "Павлов Дмитрий Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:57.361861", + "updated_at": "2026-03-15T05:42:57.361884", + "relations_count": 0 + }, + { + "id": 214, + "name": "Панфёрова Галина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:57.623999", + "updated_at": "2026-03-15T05:42:57.624050", + "relations_count": 0 + }, + { + "id": 83, + "name": "Паша Полтавский", + "email": "", + "phone": "+79214944569", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:32.916372", + "updated_at": "2026-03-15T05:42:32.916419", + "relations_count": 0 + }, + { + "id": 224, + "name": "Пашкевич Иван Владимирович", + "email": "", + "phone": "89119330006", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:59.552678", + "updated_at": "2026-03-15T05:42:59.552707", + "relations_count": 0 + }, + { + "id": 215, + "name": "Петрова Юлия Михайловна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:57.755890", + "updated_at": "2026-03-15T05:42:57.755913", + "relations_count": 0 + }, + { + "id": 225, + "name": "Подшивалов Георгий Андреевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:59.690426", + "updated_at": "2026-05-14T02:33:17.478583", + "relations_count": 0 + }, + { + "id": 216, + "name": "Поляков Сергей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:58.005579", + "updated_at": "2026-03-15T05:42:58.005636", + "relations_count": 0 + }, + { + "id": 217, + "name": "Попова Анна Викторовна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:58.305717", + "updated_at": "2026-03-15T05:42:58.305751", + "relations_count": 0 + }, + { + "id": 84, + "name": "Прокат Вело", + "email": "", + "phone": "88129093672", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:33.065999", + "updated_at": "2026-03-15T05:42:33.066061", + "relations_count": 0 + }, + { + "id": 44, + "name": "Радик Ишмаев", + "email": "", + "phone": "89272495520", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:26.522407", + "updated_at": "2026-03-15T05:42:26.522463", + "relations_count": 0 + }, + { + "id": 85, + "name": "Радмила", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:33.204502", + "updated_at": "2026-03-15T05:42:33.204554", + "relations_count": 0 + }, + { + "id": 86, + "name": "Радмир", + "email": "", + "phone": "+79373021892", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:33.596383", + "updated_at": "2026-03-15T05:42:33.596434", + "relations_count": 0 + }, + { + "id": 77, + "name": "Рамис Новый", + "email": "", + "phone": "8 962 693-28-84", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:31.968989", + "updated_at": "2026-03-15T05:42:31.969050", + "relations_count": 0 + }, + { + "id": 100, + "name": "Рамис Сосед", + "email": "", + "phone": "+7 931 982-62-48", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:36.244482", + "updated_at": "2026-03-15T05:42:36.244531", + "relations_count": 0 + }, + { + "id": 173, + "name": "Регина", + "email": "", + "phone": "89817262898", + "organization": "", + "position": "", + "notes": "Жена Икбола. Знакома с Сократом. Общительная.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:50.277355", + "updated_at": "2026-03-15T05:42:50.277395", + "relations_count": 0 + }, + { + "id": 12, + "name": "Ренат Наильевич Аитов", + "email": "", + "phone": "+79657986479", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:20.888703", + "updated_at": "2026-03-15T05:42:20.888850", + "relations_count": 0 + }, + { + "id": 121, + "name": "Римма Якупова", + "email": "", + "phone": "+7 937 309-17-17", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.537990", + "updated_at": "2026-03-15T05:42:40.538052", + "relations_count": 0 + }, + { + "id": 13, + "name": "Ринат Аитов", + "email": "", + "phone": "89214870226", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:21.038669", + "updated_at": "2026-03-15T05:42:21.038701", + "relations_count": 0 + }, + { + "id": 119, + "name": "Ринат Ильгизович Якупов", + "email": "rinatka7@bk.ru", + "phone": "+79967980562", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.320586", + "updated_at": "2026-03-15T05:42:40.320632", + "relations_count": 0 + }, + { + "id": 110, + "name": "Роман Ринатович Хусаинов", + "email": "", + "phone": "89214912576", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:38.977862", + "updated_at": "2026-03-15T05:42:38.977918", + "relations_count": 0 + }, + { + "id": 162, + "name": "С.А. Горбунов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:48.475001", + "updated_at": "2026-03-15T05:42:48.475063", + "relations_count": 0 + }, + { + "id": 94, + "name": "Сафура", + "email": "", + "phone": "+79053542960", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:35.181564", + "updated_at": "2026-03-15T05:42:35.181586", + "relations_count": 0 + }, + { + "id": 91, + "name": "Света Казань родственники", + "email": "", + "phone": "+79655908514", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:34.580369", + "updated_at": "2026-03-15T05:42:34.580392", + "relations_count": 0 + }, + { + "id": 98, + "name": "Света Симановская", + "email": "", + "phone": "8 981 803-22-09", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:35.911553", + "updated_at": "2026-03-15T05:42:35.911609", + "relations_count": 0 + }, + { + "id": 36, + "name": "Светлана Гулюта", + "email": "", + "phone": "89214835894", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.983954", + "updated_at": "2026-03-15T05:42:24.983987", + "relations_count": 0 + }, + { + "id": 165, + "name": "Светлана Морозова", + "email": "", + "phone": "@Svetlana_Morozova_Electropribor", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.010547", + "updated_at": "2026-03-15T05:42:49.010600", + "relations_count": 0 + }, + { + "id": 135, + "name": "Сергей Константинович Сурин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Офицер энергонадзора в Можайке. Зп 65 тр. Подрабатывает монтажом под ключ. 2 разряд по пауерлифтингу получил в Няндоме(показывал фото). Планирует уволиться в 2026 году.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:43.227613", + "updated_at": "2026-03-15T05:42:43.227643", + "relations_count": 0 + }, + { + "id": 40, + "name": "Серега Емельянович", + "email": "", + "phone": "+79154189674", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:25.778921", + "updated_at": "2026-03-15T05:42:25.779010", + "relations_count": 0 + }, + { + "id": 70, + "name": "Сечко Москва", + "email": "", + "phone": "+79046590150", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:30.667676", + "updated_at": "2026-03-15T05:42:30.667719", + "relations_count": 0 + }, + { + "id": 227, + "name": "Смирнов Алексей Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:59.940627", + "updated_at": "2026-03-15T05:42:59.940665", + "relations_count": 0 + }, + { + "id": 148, + "name": "Соня", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:45.397991", + "updated_at": "2026-03-15T05:42:45.398043", + "relations_count": 0 + }, + { + "id": 228, + "name": "Стариков Александр Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:00.097057", + "updated_at": "2026-03-15T05:43:00.097091", + "relations_count": 0 + }, + { + "id": 169, + "name": "Стас Маросев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:49.581718", + "updated_at": "2026-05-14T02:33:20.778179", + "relations_count": 0 + }, + { + "id": 102, + "name": "Степан", + "email": "", + "phone": "+7 914 849-46-02", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:36.628573", + "updated_at": "2026-05-17T04:27:40.531840", + "relations_count": 1 + }, + { + "id": 48, + "name": "Степан Королев", + "email": "st.korolev@list.ru", + "phone": "+79817014384", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:27.251878", + "updated_at": "2026-05-10T08:17:19.742143", + "relations_count": 0 + }, + { + "id": 103, + "name": "Тарасов", + "email": "", + "phone": "+7 911 975-03-84", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:36.783930", + "updated_at": "2026-03-15T05:42:36.783953", + "relations_count": 0 + }, + { + "id": 144, + "name": "Татьяна", + "email": "", + "phone": "+7 995 628 4534", + "organization": "", + "position": "", + "notes": "Бизнес вумен. Учится по вечерам - студентка. Много работатет - рискует перегореть.", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:44.770697", + "updated_at": "2026-03-15T05:42:44.770720", + "relations_count": 0 + }, + { + "id": 65, + "name": "Теща Малимона", + "email": "", + "phone": "+79112195520", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:29.911947", + "updated_at": "2026-03-15T05:42:29.912041", + "relations_count": 0 + }, + { + "id": 229, + "name": "Тимофеев Виталий Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:00.253713", + "updated_at": "2026-03-15T05:43:00.253775", + "relations_count": 0 + }, + { + "id": 226, + "name": "Топалов Владимир Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:59.808641", + "updated_at": "2026-03-15T05:42:59.808662", + "relations_count": 0 + }, + { + "id": 31, + "name": "Тумский В Г", + "email": "", + "phone": "89314156919", + "organization": "", + "position": "", + "notes": "ФГУП СКБ \\\"Титан\\\"", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:24.220384", + "updated_at": "2026-03-15T05:42:24.220434", + "relations_count": 0 + }, + { + "id": 230, + "name": "Тюрюхин Михаил Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:00.418988", + "updated_at": "2026-03-15T05:43:00.419044", + "relations_count": 0 + }, + { + "id": 231, + "name": "Тюфряк Андрей Валерьевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:00.611877", + "updated_at": "2026-03-15T05:43:00.611957", + "relations_count": 0 + }, + { + "id": 236, + "name": "Устин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:01.294031", + "updated_at": "2026-03-15T05:43:01.294088", + "relations_count": 0 + }, + { + "id": 232, + "name": "Ушаков Сергей Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:00.747236", + "updated_at": "2026-03-15T05:43:00.747271", + "relations_count": 0 + }, + { + "id": 233, + "name": "Филименко Ян Игоревич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:00.872021", + "updated_at": "2026-03-15T05:43:00.872045", + "relations_count": 0 + }, + { + "id": 234, + "name": "Чапков Руслан Ильгизович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:01.027109", + "updated_at": "2026-03-15T05:43:01.027145", + "relations_count": 0 + }, + { + "id": 4, + "name": "Шакиров Айдар", + "email": "", + "phone": "+79214854729", + "organization": "", + "position": "", + "notes": "https://yar.diskstation.me/dokuwiki/doku.php?id=wiki:parking:forum:forum", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:19.669385", + "updated_at": "2026-03-15T05:42:19.669415", + "relations_count": 0 + }, + { + "id": 23, + "name": "Шива Вадим", + "email": "", + "phone": "+380661894022", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:22.791033", + "updated_at": "2026-03-15T05:42:22.791095", + "relations_count": 0 + }, + { + "id": 117, + "name": "Шоди", + "email": "", + "phone": "8 921 641-40-97", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:40.008786", + "updated_at": "2026-03-15T05:42:40.008905", + "relations_count": 0 + }, + { + "id": 8, + "name": "Эмиль Аглиулин", + "email": "", + "phone": "89603975444", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:20.203159", + "updated_at": "2026-03-15T05:42:20.203228", + "relations_count": 0 + }, + { + "id": 7, + "name": "Яковлев А. А", + "email": "", + "phone": "89815539615", + "organization": "", + "position": "", + "notes": "\\\"ЦЕНКИ\\\" НИИСК", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:20.034206", + "updated_at": "2026-03-15T05:42:20.034245", + "relations_count": 0 + }, + { + "id": 235, + "name": "Яковлев Сергей Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:43:01.170322", + "updated_at": "2026-03-15T05:43:01.170368", + "relations_count": 0 + }, + { + "id": 18, + "name": "Якупов Илдус Анварович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:21.962744", + "updated_at": "2026-05-17T13:55:24.151928", + "relations_count": 0 + }, + { + "id": 96, + "name": "Якупова Света", + "email": "", + "phone": "+7 937 308-53-58", + "organization": "", + "position": "", + "notes": "", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:35.513494", + "updated_at": "2026-03-15T05:42:35.513558", + "relations_count": 0 + }, + { + "id": 132, + "name": "Яна Яновна", + "email": "", + "phone": "89110063164", + "organization": "", + "position": "", + "notes": "Регистрация брака. 27.09.2024", + "life_sphere": "other", + "network_circle": "productivity", + "importance": 3, + "include_on_network_map": false, + "map_angle": null, + "map_radius_ratio": null, + "created_at": "2026-03-15T05:42:42.636658", + "updated_at": "2026-03-15T05:42:42.636726", + "relations_count": 0 + } + ], + "relations": [ + { + "id": 1, + "source": 1, + "source_name": "Иван Иванов", + "target": 2, + "target_name": "Мария Петрова", + "relation_type": "colleague", + "description": "Партнёры по проекту", + "interaction_intensity": "intense", + "created_at": "2026-03-14T09:22:00.514711" + }, + { + "id": 2, + "source": 1, + "source_name": "Иван Иванов", + "target": 3, + "target_name": "Алексей Смирнов", + "relation_type": "friend", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-14T09:22:00.516057" + }, + { + "id": 3, + "source": 3, + "source_name": "Алексей Смирнов", + "target": 1, + "target_name": "Иван Иванов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T04:59:10.431002" + }, + { + "id": 4, + "source": 2, + "source_name": "Мария Петрова", + "target": 1, + "target_name": "Иван Иванов", + "relation_type": "business", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:00:23.796924" + }, + { + "id": 5, + "source": 186, + "source_name": "Горбунов Станислав Александрович", + "target": 157, + "target_name": "И.В. Пашкевич", + "relation_type": "colleague", + "description": "Отношение нейтральные", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:48:15.751607" + }, + { + "id": 6, + "source": 37, + "source_name": "Женя Додонов", + "target": 192, + "target_name": "Жуменков Сергей Васильевич", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:54:44.442326" + }, + { + "id": 7, + "source": 192, + "source_name": "Жуменков Сергей Васильевич", + "target": 113, + "target_name": "Аглиулин Эмиль Шамилевич", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:57:57.794219" + }, + { + "id": 8, + "source": 1, + "source_name": "Иван Иванов", + "target": 113, + "target_name": "Аглиулин Эмиль Шамилевич", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T15:22:39.588059" + }, + { + "id": 9, + "source": 147, + "source_name": "Екатерина Тихова", + "target": 109, + "target_name": "Алексей Ходосов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-05-10T07:47:58.237244" + }, + { + "id": 10, + "source": 181, + "source_name": "Быкова Валентина Сергеевна", + "target": 187, + "target_name": "Гриненков Алексей Владимирович", + "relation_type": "colleague", + "description": "ПНачальник- подчиненный", + "interaction_intensity": "intense", + "created_at": "2026-05-14T02:35:57.602865" + }, + { + "id": 11, + "source": 102, + "source_name": "Степан", + "target": 20, + "target_name": "Артур Ахмедзянов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-05-17T04:23:43.374514" + }, + { + "id": 12, + "source": 161, + "source_name": "А.В. Бельченко", + "target": 20, + "target_name": "Артур Ахмедзянов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-05-17T13:53:03.182697" + } + ] +} \ No newline at end of file diff --git a/backups/full-backup-2026-06-24.json b/backups/full-backup-2026-06-24.json new file mode 100644 index 0000000..f64674a --- /dev/null +++ b/backups/full-backup-2026-06-24.json @@ -0,0 +1,2985 @@ +{ + "version": 2, + "exportedAt": "2026-06-24", + "source": "django-backup-before-rollback", + "contacts": [ + { + "id": 161, + "name": "А.В. Бельченко", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:48.040973", + "updated_at": "2026-03-15T05:42:48.040995", + "relations_count": 1 + }, + { + "id": 154, + "name": "А.И. Машошин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:46.596607", + "updated_at": "2026-03-15T05:42:46.596669", + "relations_count": 0 + }, + { + "id": 153, + "name": "А.И. Стариков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора", + "created_at": "2026-03-15T05:42:46.438511", + "updated_at": "2026-05-14T02:29:17.773428", + "relations_count": 0 + }, + { + "id": 115, + "name": "Аглиулин Шамиль", + "email": "", + "phone": "+79610464441", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:39.717558", + "updated_at": "2026-03-15T05:42:39.717620", + "relations_count": 0 + }, + { + "id": 113, + "name": "Аглиулин Эмиль Шамилевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:39.418904", + "updated_at": "2026-03-15T05:42:39.418936", + "relations_count": 2 + }, + { + "id": 114, + "name": "Аглиулина Милена Шамилевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:39.564127", + "updated_at": "2026-03-15T05:42:39.564183", + "relations_count": 0 + }, + { + "id": 32, + "name": "Айрат Габидулин", + "email": "", + "phone": "+79963093836", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:24.423395", + "updated_at": "2026-03-15T05:42:24.423418", + "relations_count": 0 + }, + { + "id": 133, + "name": "Александр Александрович Александров", + "email": "", + "phone": "+79013454293", + "organization": "", + "position": "", + "notes": "Главный координационный центр. Подполковник. 2024 учился в Военном институте связи в Спб. Зп 150 тр. Москва для людей. Наслаждается жизнью. Работает 1\\3. Показывал фото дочери.", + "created_at": "2026-03-15T05:42:42.831933", + "updated_at": "2026-03-15T05:42:42.832028", + "relations_count": 0 + }, + { + "id": 39, + "name": "Александр Александрович Елисеев", + "email": "", + "phone": "89214891842", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:25.585459", + "updated_at": "2026-03-15T05:42:25.585502", + "relations_count": 0 + }, + { + "id": 26, + "name": "Александр Взрввозащита", + "email": "", + "phone": "8 911 166-65-65", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:23.390347", + "updated_at": "2026-03-15T05:42:23.390410", + "relations_count": 0 + }, + { + "id": 93, + "name": "Александр Сайкин", + "email": "", + "phone": "+79295831376", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:34.857700", + "updated_at": "2026-03-15T05:42:34.857734", + "relations_count": 0 + }, + { + "id": 15, + "name": "Александр Эдуардович Алексюк", + "email": "", + "phone": "+79212955441", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:21.310263", + "updated_at": "2026-03-15T05:42:21.310325", + "relations_count": 0 + }, + { + "id": 71, + "name": "Алексей Викторович Мурзаев", + "email": "", + "phone": "+79214764550", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.846868", + "updated_at": "2026-03-15T05:42:30.846964", + "relations_count": 0 + }, + { + "id": 150, + "name": "Алексей Кузнецов", + "email": "", + "phone": "89126503557", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:45.811440", + "updated_at": "2026-03-15T05:42:45.811501", + "relations_count": 0 + }, + { + "id": 123, + "name": "Алексей Михайлович Кузенков", + "email": "", + "phone": "+79219619580", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.945453", + "updated_at": "2026-03-15T05:42:40.945507", + "relations_count": 0 + }, + { + "id": 139, + "name": "Алексей Павлов", + "email": "", + "phone": "+7996450-29-19", + "organization": "", + "position": "", + "notes": "Вспыльчив. Любит поговорить. Обостренное чувство честности. Мнителен.\nНа НГ планировал уволиться (причины: вопросы с дочкой, и видимо товарищ предложил работу программистом с более высокой оплатой). Уговорили остаться уважаемые люди + выплатили высокую премию. Вышел на удаленку.", + "created_at": "2026-03-15T05:42:43.966363", + "updated_at": "2026-05-14T02:29:22.513547", + "relations_count": 0 + }, + { + "id": 3, + "name": "Алексей Смирнов", + "email": "", + "phone": "", + "organization": "Яндекс", + "position": "Разработчик", + "notes": "", + "created_at": "2026-03-14T09:22:00.513396", + "updated_at": "2026-03-14T09:22:00.513406", + "relations_count": 2 + }, + { + "id": 109, + "name": "Алексей Ходосов", + "email": "dion26rus@gmail.com", + "phone": "89216786805", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:38.789024", + "updated_at": "2026-05-14T02:21:45.391178", + "relations_count": 1 + }, + { + "id": 131, + "name": "Алина Корги", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:42.433588", + "updated_at": "2026-03-15T05:42:42.433627", + "relations_count": 0 + }, + { + "id": 89, + "name": "Алла Риелтер", + "email": "", + "phone": "8 962 720-36-73", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:34.184510", + "updated_at": "2026-03-15T05:42:34.184601", + "relations_count": 0 + }, + { + "id": 73, + "name": "Анатолий Мысов", + "email": "", + "phone": "+79214730344", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:31.179714", + "updated_at": "2026-03-15T05:42:31.179736", + "relations_count": 0 + }, + { + "id": 126, + "name": "Андрей", + "email": "", + "phone": "+7 (931) 964-80-47", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:41.471021", + "updated_at": "2026-03-15T05:42:41.471054", + "relations_count": 0 + }, + { + "id": 146, + "name": "Андрей Наумов", + "email": "", + "phone": "+79522867684", + "organization": "", + "position": "", + "notes": "Женат. Дочь. Большой опыт в электромонтаже. Душа компании. Располагает к себе людей. Хорошо ладит с детьми. Мягкий. Добросовестный. Трудолюбивый.\nДальнозорк", + "created_at": "2026-03-15T05:42:44.997469", + "updated_at": "2026-03-15T05:42:44.997494", + "relations_count": 0 + }, + { + "id": 74, + "name": "Андрей Николаев", + "email": "", + "phone": "89815639450", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:31.329122", + "updated_at": "2026-03-15T05:42:31.329184", + "relations_count": 0 + }, + { + "id": 75, + "name": "Андрей Николаев Моск", + "email": "", + "phone": "+79257177037", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:31.519869", + "updated_at": "2026-03-15T05:42:31.519943", + "relations_count": 0 + }, + { + "id": 152, + "name": "Андрей Шафранюк", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "к.т.н", + "created_at": "2026-03-15T05:42:46.258186", + "updated_at": "2026-03-15T05:42:46.258209", + "relations_count": 0 + }, + { + "id": 81, + "name": "Андрюха Орлов", + "email": "", + "phone": "89642960683", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:32.655827", + "updated_at": "2026-03-15T05:42:32.655850", + "relations_count": 0 + }, + { + "id": 95, + "name": "Ануфриева Света", + "email": "", + "phone": "89539358648", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:35.346735", + "updated_at": "2026-03-15T05:42:35.346828", + "relations_count": 0 + }, + { + "id": 175, + "name": "Артем", + "email": "", + "phone": "+7 995 913 77 50", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:50.710218", + "updated_at": "2026-03-15T05:42:50.710270", + "relations_count": 0 + }, + { + "id": 60, + "name": "Артем Витальевич Лунин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:29.112836", + "updated_at": "2026-03-15T05:42:29.112870", + "relations_count": 0 + }, + { + "id": 167, + "name": "Артем Востриков", + "email": "", + "phone": "89132703333", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:49.307902", + "updated_at": "2026-03-15T05:42:49.307940", + "relations_count": 0 + }, + { + "id": 46, + "name": "Артем Клименко", + "email": "", + "phone": "+7 927 311-37-97", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:26.842013", + "updated_at": "2026-03-15T05:42:26.842035", + "relations_count": 0 + }, + { + "id": 20, + "name": "Артур Ахмедзянов", + "email": "", + "phone": "+79602340617", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:22.286368", + "updated_at": "2026-03-15T05:42:22.286400", + "relations_count": 2 + }, + { + "id": 179, + "name": "Баскаков Иван Анатольевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "В секторе Подшивалова", + "created_at": "2026-03-15T05:42:51.394701", + "updated_at": "2026-05-14T02:29:20.300137", + "relations_count": 0 + }, + { + "id": 6, + "name": "Баходир 2", + "email": "", + "phone": "8 931 986-04-51", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:19.967420", + "updated_at": "2026-03-15T05:42:19.967446", + "relations_count": 0 + }, + { + "id": 55, + "name": "Борис Александрович Летучев", + "email": "", + "phone": "89210857720", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.285100", + "updated_at": "2026-03-15T05:42:28.285124", + "relations_count": 0 + }, + { + "id": 99, + "name": "Боря сосед", + "email": "", + "phone": "8 967 359-25-07", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:36.046517", + "updated_at": "2026-03-15T05:42:36.046569", + "relations_count": 0 + }, + { + "id": 180, + "name": "Брага Юрий Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:51.541547", + "updated_at": "2026-03-15T05:42:51.541609", + "relations_count": 0 + }, + { + "id": 181, + "name": "Быкова Валентина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора. Мой начальник.", + "created_at": "2026-03-15T05:42:51.762749", + "updated_at": "2026-05-14T02:37:55.609887", + "relations_count": 1 + }, + { + "id": 156, + "name": "В.А. Потапов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:46.875252", + "updated_at": "2026-03-15T05:42:46.875288", + "relations_count": 0 + }, + { + "id": 155, + "name": "В.В. Прокопович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:46.757341", + "updated_at": "2026-03-15T05:42:46.757392", + "relations_count": 0 + }, + { + "id": 158, + "name": "В.С. Мельканович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:47.509315", + "updated_at": "2026-03-15T05:42:47.509340", + "relations_count": 0 + }, + { + "id": 136, + "name": "Вадим Галкин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:43.388761", + "updated_at": "2026-03-15T05:42:43.388868", + "relations_count": 0 + }, + { + "id": 34, + "name": "Вадим Сергеевич Гончаров", + "email": "", + "phone": "89212442006", + "organization": "", + "position": "", + "notes": "Служит в 14003. Начальник отделения. Планирует уволиться ~ 2026 г. Планирует продать однушку и заипотечиться в двушку, чтоб жить втроем на Комендане.", + "created_at": "2026-03-15T05:42:24.682908", + "updated_at": "2026-03-15T05:42:24.682939", + "relations_count": 0 + }, + { + "id": 108, + "name": "Вадим Харьков", + "email": "", + "phone": "+79112933468", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:38.587916", + "updated_at": "2026-03-15T05:42:38.587952", + "relations_count": 0 + }, + { + "id": 143, + "name": "Валентина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Пользуется вниманием. 14 лет в НИИ. Натянутые отношения с др. начальниками групп. Хорошие отношения с высокими начальниками. Работает над сферой организации проектов. На корпаративе может выпить несколько рюмок водки.", + "created_at": "2026-03-15T05:42:44.620660", + "updated_at": "2026-03-15T05:42:44.620689", + "relations_count": 0 + }, + { + "id": 172, + "name": "Валентина Сергеевна Быкова", + "email": "", + "phone": "+7921350-22-93", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:50.069189", + "updated_at": "2026-03-15T05:42:50.069233", + "relations_count": 0 + }, + { + "id": 116, + "name": "Валентинович Всеволод Шатов", + "email": "", + "phone": "+79214910619", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:39.871525", + "updated_at": "2026-03-15T05:42:39.871548", + "relations_count": 0 + }, + { + "id": 24, + "name": "Василий", + "email": "", + "phone": "+79998128872", + "organization": "", + "position": "", + "notes": "Хочет реализовать интернет проект.", + "created_at": "2026-03-15T05:42:23.072756", + "updated_at": "2026-03-15T05:42:23.072880", + "relations_count": 0 + }, + { + "id": 134, + "name": "Вера", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:43.076717", + "updated_at": "2026-03-15T05:42:43.076846", + "relations_count": 0 + }, + { + "id": 49, + "name": "Вероника Королева", + "email": "", + "phone": "+7-931-535-65-06", + "organization": "", + "position": "", + "notes": "Работает в детском саду.", + "created_at": "2026-03-15T05:42:27.442141", + "updated_at": "2026-03-15T05:42:27.442211", + "relations_count": 0 + }, + { + "id": 125, + "name": "Виктор Андронов", + "email": "", + "phone": "+79643429812", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:41.249174", + "updated_at": "2026-03-15T05:42:41.249235", + "relations_count": 0 + }, + { + "id": 57, + "name": "Виктор Локтев", + "email": "", + "phone": "+79121719937", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.679492", + "updated_at": "2026-03-15T05:42:28.679516", + "relations_count": 0 + }, + { + "id": 47, + "name": "Виталик Коптелов", + "email": "", + "phone": "+79144069116", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:27.011628", + "updated_at": "2026-03-15T05:42:27.011684", + "relations_count": 0 + }, + { + "id": 107, + "name": "Виталик Фролов", + "email": "", + "phone": "8 906 194-41-46", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:38.454000", + "updated_at": "2026-03-15T05:42:38.454095", + "relations_count": 0 + }, + { + "id": 42, + "name": "Витя Зос", + "email": "", + "phone": "+7 911 230-09-30", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:26.068814", + "updated_at": "2026-03-15T05:42:26.068848", + "relations_count": 0 + }, + { + "id": 80, + "name": "Витя Опар2", + "email": "", + "phone": "89992003135", + "organization": "", + "position": "", + "notes": "Уехал в Тайланд на полгода. Занимается спекуляцией крипты.\nИмееет дачу. Любит копаться в земле. Предлагает во второй половине 2025 заняться потолками.", + "created_at": "2026-03-15T05:42:32.467962", + "updated_at": "2026-03-15T05:42:32.468024", + "relations_count": 0 + }, + { + "id": 105, + "name": "Влад Богомолов", + "email": "", + "phone": "8 911 824-16-27", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:38.002532", + "updated_at": "2026-03-15T05:42:38.002588", + "relations_count": 0 + }, + { + "id": 21, + "name": "Владимир Артурович Березин", + "email": "", + "phone": "+79778491152", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:22.448377", + "updated_at": "2026-03-15T05:42:22.448400", + "relations_count": 0 + }, + { + "id": 182, + "name": "Волкова Александра Юрьевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:51.928588", + "updated_at": "2026-03-15T05:42:51.928611", + "relations_count": 0 + }, + { + "id": 25, + "name": "Галикеев Василь", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:23.210873", + "updated_at": "2026-03-15T05:42:23.210933", + "relations_count": 0 + }, + { + "id": 171, + "name": "Георгий Осипков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Помогает с контроллерами.", + "created_at": "2026-03-15T05:42:49.859344", + "updated_at": "2026-03-15T05:42:49.859372", + "relations_count": 0 + }, + { + "id": 168, + "name": "Георгий Подшивалов", + "email": "", + "phone": "+7 921 310 1889", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:49.448599", + "updated_at": "2026-03-15T05:42:49.448651", + "relations_count": 0 + }, + { + "id": 183, + "name": "Говоров Владимир Денисович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:52.015169", + "updated_at": "2026-03-15T05:42:52.015199", + "relations_count": 0 + }, + { + "id": 184, + "name": "Горбунов Николай Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:52.209481", + "updated_at": "2026-03-15T05:42:52.209543", + "relations_count": 0 + }, + { + "id": 186, + "name": "Горбунов Станислав Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:52.580351", + "updated_at": "2026-03-15T05:42:52.580380", + "relations_count": 1 + }, + { + "id": 185, + "name": "Горюнов Евгений Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:52.399745", + "updated_at": "2026-03-15T05:42:52.399934", + "relations_count": 0 + }, + { + "id": 187, + "name": "Гриненков Алексей Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:52.758699", + "updated_at": "2026-05-14T02:29:13.796983", + "relations_count": 1 + }, + { + "id": 237, + "name": "Гриценков Алексей Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:51:56.021181", + "updated_at": "2026-03-15T05:51:56.021228", + "relations_count": 0 + }, + { + "id": 188, + "name": "Гришманова Татьяна Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:53.016275", + "updated_at": "2026-03-15T05:42:53.016338", + "relations_count": 0 + }, + { + "id": 69, + "name": "Гулюта Сергей Михайлович", + "email": "", + "phone": "89214856521", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.476344", + "updated_at": "2026-03-15T05:42:30.476420", + "relations_count": 0 + }, + { + "id": 163, + "name": "Д.Г. Кореньков", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:48.694569", + "updated_at": "2026-03-15T05:42:48.694603", + "relations_count": 0 + }, + { + "id": 45, + "name": "Давлетшин Карим", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:26.694727", + "updated_at": "2026-03-15T05:42:26.694763", + "relations_count": 0 + }, + { + "id": 90, + "name": "Давлетшин Рустам Ринатович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:34.445382", + "updated_at": "2026-03-15T05:42:34.445455", + "relations_count": 0 + }, + { + "id": 130, + "name": "Даша Андреевна Драгун", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:42.253213", + "updated_at": "2026-03-15T05:42:42.253270", + "relations_count": 0 + }, + { + "id": 189, + "name": "Демиденко Дмитрий Алексеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:53.189563", + "updated_at": "2026-03-15T05:42:53.189615", + "relations_count": 0 + }, + { + "id": 33, + "name": "Денис Гизатулин", + "email": "", + "phone": "+7 916 009-26-16", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:24.550248", + "updated_at": "2026-03-15T05:42:24.550276", + "relations_count": 0 + }, + { + "id": 97, + "name": "Дмитрий Александрович Сечко", + "email": "", + "phone": "+79210775033", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:35.640202", + "updated_at": "2026-03-15T05:42:35.640236", + "relations_count": 0 + }, + { + "id": 178, + "name": "Дмитрий Шторн", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:51.219239", + "updated_at": "2026-03-15T05:42:51.219274", + "relations_count": 0 + }, + { + "id": 19, + "name": "Добрынин Антон", + "email": "", + "phone": "8 987 019-58-65", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:22.154606", + "updated_at": "2026-03-15T05:42:22.154637", + "relations_count": 0 + }, + { + "id": 129, + "name": "Дочь", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:42.023423", + "updated_at": "2026-03-15T05:42:42.023498", + "relations_count": 0 + }, + { + "id": 38, + "name": "Дружинин", + "email": "", + "phone": "+79195548628", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:25.437295", + "updated_at": "2026-03-15T05:42:25.437329", + "relations_count": 0 + }, + { + "id": 29, + "name": "Душейко Владимир Владимирович", + "email": "", + "phone": "89216760552", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:23.965053", + "updated_at": "2026-03-15T05:42:23.965086", + "relations_count": 0 + }, + { + "id": 160, + "name": "Е.А. Горбунов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:47.898581", + "updated_at": "2026-03-15T05:42:47.898632", + "relations_count": 0 + }, + { + "id": 164, + "name": "Евгений", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Хорошо эрудирован. Не женат. Имеет 3д виртуальные очки. Приятен в общении. Проявил интерес к распечатанной турели.", + "created_at": "2026-03-15T05:42:48.816257", + "updated_at": "2026-03-15T05:42:48.816314", + "relations_count": 0 + }, + { + "id": 149, + "name": "Евгений Андрущенко", + "email": "", + "phone": "@EvgeniySPbRf", + "organization": "", + "position": "", + "notes": "Занимался стартапом по производству дронов полтора года.", + "created_at": "2026-03-15T05:42:45.637821", + "updated_at": "2026-03-15T05:42:45.637864", + "relations_count": 0 + }, + { + "id": 52, + "name": "Екатерина Наильевна Крикунова", + "email": "", + "phone": "89314171873", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:27.860197", + "updated_at": "2026-03-15T05:42:27.860221", + "relations_count": 0 + }, + { + "id": 147, + "name": "Екатерина Тихова", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:45.186628", + "updated_at": "2026-05-17T04:25:31.045777", + "relations_count": 1 + }, + { + "id": 190, + "name": "Ефимова Анна Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:53.360200", + "updated_at": "2026-03-15T05:42:53.360224", + "relations_count": 0 + }, + { + "id": 127, + "name": "Жена", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:41.628079", + "updated_at": "2026-03-15T05:42:41.628134", + "relations_count": 0 + }, + { + "id": 37, + "name": "Женя Додонов", + "email": "", + "phone": "+79119158495", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:25.229329", + "updated_at": "2026-03-15T05:42:25.229378", + "relations_count": 1 + }, + { + "id": 192, + "name": "Жуменков Сергей Васильевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:53.674630", + "updated_at": "2026-03-15T05:42:53.674681", + "relations_count": 2 + }, + { + "id": 191, + "name": "Журавлёв Алексей Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:53.517587", + "updated_at": "2026-03-15T05:42:53.517619", + "relations_count": 0 + }, + { + "id": 87, + "name": "Зайнулов Расим", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:33.807418", + "updated_at": "2026-03-15T05:42:33.807441", + "relations_count": 0 + }, + { + "id": 88, + "name": "Зайнулов Ринат Рафикович", + "email": "", + "phone": "+7 937 358-82-37", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:33.965442", + "updated_at": "2026-03-15T05:42:33.965506", + "relations_count": 0 + }, + { + "id": 92, + "name": "Зайнулов Рустам", + "email": "", + "phone": "+79991300454", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:34.715546", + "updated_at": "2026-03-15T05:42:34.715608", + "relations_count": 0 + }, + { + "id": 193, + "name": "Зайцев Сергей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:53.909059", + "updated_at": "2026-03-15T05:42:53.909094", + "relations_count": 0 + }, + { + "id": 82, + "name": "Звонков Павел", + "email": "", + "phone": "+79899568256", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:32.754444", + "updated_at": "2026-03-15T05:42:32.754466", + "relations_count": 0 + }, + { + "id": 194, + "name": "Знаменский Даниил Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:54.053719", + "updated_at": "2026-03-15T05:42:54.053767", + "relations_count": 0 + }, + { + "id": 157, + "name": "И.В. Пашкевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:46.990213", + "updated_at": "2026-03-15T05:42:46.990246", + "relations_count": 1 + }, + { + "id": 62, + "name": "Иван Витальевич Малимон", + "email": "", + "phone": "89115805720", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:29.432589", + "updated_at": "2026-03-15T05:42:29.432621", + "relations_count": 0 + }, + { + "id": 1, + "name": "Иван Иванов", + "email": "ivan@test.com", + "phone": "", + "organization": "ООО Ромашка", + "position": "Директор", + "notes": "", + "created_at": "2026-03-14T09:22:00.510250", + "updated_at": "2026-03-14T09:22:00.510270", + "relations_count": 5 + }, + { + "id": 195, + "name": "Иванов Максим Станиславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:54.277661", + "updated_at": "2026-03-15T05:42:54.277753", + "relations_count": 0 + }, + { + "id": 56, + "name": "Игорь Павлович Лобода", + "email": "", + "phone": "89314067638", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.482372", + "updated_at": "2026-03-15T05:42:28.482405", + "relations_count": 0 + }, + { + "id": 174, + "name": "Икбол", + "email": "", + "phone": "89955918819", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:50.521550", + "updated_at": "2026-03-15T05:42:50.521583", + "relations_count": 0 + }, + { + "id": 118, + "name": "Илдус Якупов", + "email": "", + "phone": "+79279571795", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.186406", + "updated_at": "2026-03-15T05:42:40.186461", + "relations_count": 0 + }, + { + "id": 104, + "name": "Ильнур Тимиргазин", + "email": "", + "phone": "+7 962 533-96-56", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:37.781757", + "updated_at": "2026-03-15T05:42:37.781780", + "relations_count": 0 + }, + { + "id": 122, + "name": "Ильнур Янтур", + "email": "", + "phone": "+79196228909", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.758321", + "updated_at": "2026-03-15T05:42:40.758344", + "relations_count": 0 + }, + { + "id": 17, + "name": "Инсаф Якупов Анварович", + "email": "", + "phone": "+79128812711", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:21.784841", + "updated_at": "2026-03-15T05:42:21.784872", + "relations_count": 0 + }, + { + "id": 137, + "name": "Катя", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:43.597679", + "updated_at": "2026-03-15T05:42:43.597741", + "relations_count": 0 + }, + { + "id": 142, + "name": "Катя Полтавская", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:44.489662", + "updated_at": "2026-03-15T05:42:44.489694", + "relations_count": 0 + }, + { + "id": 145, + "name": "Кирилл", + "email": "", + "phone": "+79117315490", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:44.885619", + "updated_at": "2026-03-15T05:42:44.885650", + "relations_count": 0 + }, + { + "id": 106, + "name": "Клименко Андрей Федорович", + "email": "", + "phone": "89217818881", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:38.242982", + "updated_at": "2026-03-15T05:42:38.243003", + "relations_count": 0 + }, + { + "id": 196, + "name": "Кобяшев Евгений Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:54.437218", + "updated_at": "2026-03-15T05:42:54.437268", + "relations_count": 0 + }, + { + "id": 197, + "name": "Колесников Максим Павлович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:54.590576", + "updated_at": "2026-03-15T05:42:54.590598", + "relations_count": 0 + }, + { + "id": 198, + "name": "Колесов Иван Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:54.740101", + "updated_at": "2026-03-15T05:42:54.740195", + "relations_count": 0 + }, + { + "id": 199, + "name": "Комарова Яна Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:54.905062", + "updated_at": "2026-03-15T05:42:54.905085", + "relations_count": 0 + }, + { + "id": 200, + "name": "Конюхов Геннадий Вячеславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:55.006505", + "updated_at": "2026-03-15T05:42:55.006567", + "relations_count": 0 + }, + { + "id": 50, + "name": "Котляров", + "email": "", + "phone": "89112600481", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:27.609595", + "updated_at": "2026-03-15T05:42:27.609626", + "relations_count": 0 + }, + { + "id": 30, + "name": "Котляров Вова", + "email": "", + "phone": "+7 915 733-92-97", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:24.101293", + "updated_at": "2026-03-15T05:42:24.101511", + "relations_count": 0 + }, + { + "id": 72, + "name": "Кристина Мысцева", + "email": "", + "phone": "+79062805558", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.995906", + "updated_at": "2026-03-15T05:42:30.995941", + "relations_count": 0 + }, + { + "id": 51, + "name": "Ксюша Пулатова(Красникова)", + "email": "", + "phone": "+79516535670", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:27.723198", + "updated_at": "2026-03-15T05:42:27.723250", + "relations_count": 0 + }, + { + "id": 201, + "name": "Кузнецов Кирилл Вячеславович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:55.230256", + "updated_at": "2026-03-15T05:42:55.230279", + "relations_count": 0 + }, + { + "id": 202, + "name": "Куликовских Юлия Валентиновна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:55.411693", + "updated_at": "2026-05-14T02:29:12.002232", + "relations_count": 0 + }, + { + "id": 159, + "name": "Л.А. Мартынова", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:47.698918", + "updated_at": "2026-03-15T05:42:47.698956", + "relations_count": 0 + }, + { + "id": 54, + "name": "Лаврищев", + "email": "", + "phone": "89210866646", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.151721", + "updated_at": "2026-03-15T05:42:28.151848", + "relations_count": 0 + }, + { + "id": 27, + "name": "Леонид Вилисов", + "email": "", + "phone": "+7 914 155-22-98", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:23.620436", + "updated_at": "2026-03-15T05:42:23.620460", + "relations_count": 0 + }, + { + "id": 10, + "name": "Лилия Ильясовна Аглиуллина", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:20.522723", + "updated_at": "2026-03-15T05:42:20.522781", + "relations_count": 0 + }, + { + "id": 9, + "name": "Лиля Аглиулина", + "email": "", + "phone": "+7 960 397-55-50", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:20.345590", + "updated_at": "2026-03-15T05:42:20.345656", + "relations_count": 0 + }, + { + "id": 203, + "name": "Литовченко Сергей Анатольевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:55.586908", + "updated_at": "2026-03-15T05:42:55.586938", + "relations_count": 0 + }, + { + "id": 61, + "name": "Люба", + "email": "", + "phone": "89212446797", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:29.268614", + "updated_at": "2026-03-15T05:42:29.268666", + "relations_count": 0 + }, + { + "id": 151, + "name": "Любовь Александровна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:46.004330", + "updated_at": "2026-03-15T05:42:46.004404", + "relations_count": 0 + }, + { + "id": 41, + "name": "Маким Зайцев", + "email": "", + "phone": "+79276369798", + "organization": "", + "position": "", + "notes": "Занимается стройкой\nИграет в танки и знакомится с нужными людьми. Купил квартиру в Деме. Не женат. Обычно интересуется родителями.\nЛетом 2024 ездил на Дагестан. Жил в слоеном доме. НГ 2025 встречает с очередной девушкой.\nвстречает НГ с родителями девушки в Иглино\nСозванивались. В январе разошлись с партнером. Вместе работали 8 лет. Открыл свою фирму. СНН.", + "created_at": "2026-03-15T05:42:25.934153", + "updated_at": "2026-03-15T05:42:25.934186", + "relations_count": 0 + }, + { + "id": 138, + "name": "Максим Сергеевич Бабинцев", + "email": "", + "phone": "+79523657942", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:43.798677", + "updated_at": "2026-03-15T05:42:43.798738", + "relations_count": 0 + }, + { + "id": 177, + "name": "Максим Филипович Шарп", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:51.046857", + "updated_at": "2026-03-15T05:42:51.046902", + "relations_count": 0 + }, + { + "id": 28, + "name": "Малимон Витальевич", + "email": "", + "phone": "+7 911 007-25-75", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:23.804031", + "updated_at": "2026-03-15T05:42:23.804123", + "relations_count": 0 + }, + { + "id": 16, + "name": "Малинков Юрий Анатольевич", + "email": "", + "phone": "+79212441013", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:21.586650", + "updated_at": "2026-03-15T05:42:21.586764", + "relations_count": 0 + }, + { + "id": 204, + "name": "Малышев Владислав Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:55.856786", + "updated_at": "2026-03-15T05:42:55.856851", + "relations_count": 0 + }, + { + "id": 205, + "name": "Малышкин Геннадий Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.021720", + "updated_at": "2026-03-15T05:42:56.021742", + "relations_count": 0 + }, + { + "id": 5, + "name": "Малюк Андрей Андреевич", + "email": "", + "phone": "+7 996 502-13-72", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:19.849063", + "updated_at": "2026-03-15T05:42:19.849090", + "relations_count": 0 + }, + { + "id": 76, + "name": "Малюк Андрей Новый", + "email": "", + "phone": "+7 978 968-41-17", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:31.688292", + "updated_at": "2026-03-15T05:42:31.688328", + "relations_count": 0 + }, + { + "id": 67, + "name": "Мама", + "email": "", + "phone": "+7 931 376-43-75", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.160936", + "updated_at": "2026-03-15T05:42:30.160960", + "relations_count": 0 + }, + { + "id": 206, + "name": "Марасёв Станислав Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.212143", + "updated_at": "2026-03-15T05:42:56.212208", + "relations_count": 0 + }, + { + "id": 11, + "name": "Марат Жаксыбаевич Адылханов", + "email": "", + "phone": "+79314061507", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:20.721503", + "updated_at": "2026-03-15T05:42:20.721558", + "relations_count": 0 + }, + { + "id": 53, + "name": "Марат Купаев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.015164", + "updated_at": "2026-03-15T05:42:28.015198", + "relations_count": 0 + }, + { + "id": 66, + "name": "Марина Борисовна Малюк", + "email": "", + "phone": "+79115912127", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.033225", + "updated_at": "2026-03-15T05:42:30.033287", + "relations_count": 0 + }, + { + "id": 120, + "name": "Марина Якупова", + "email": "", + "phone": "8 (981) 758-69-35", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.414894", + "updated_at": "2026-03-15T05:42:40.414917", + "relations_count": 0 + }, + { + "id": 2, + "name": "Мария Петрова", + "email": "maria@test.com", + "phone": "", + "organization": "Газпром", + "position": "Аналитик", + "notes": "", + "created_at": "2026-03-14T09:22:00.512129", + "updated_at": "2026-03-14T09:22:00.512140", + "relations_count": 2 + }, + { + "id": 207, + "name": "Марков Антон Викторович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.404157", + "updated_at": "2026-03-15T05:42:56.404193", + "relations_count": 0 + }, + { + "id": 140, + "name": "Милош Бороцкий", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Ездил на СВО 2024 году. По возвращении ию проблемы с коленом.\nДочь учится в частной школе.", + "created_at": "2026-03-15T05:42:44.124123", + "updated_at": "2026-05-14T02:29:36.836569", + "relations_count": 0 + }, + { + "id": 208, + "name": "Митрохин Виктор Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.539372", + "updated_at": "2026-03-15T05:42:56.539432", + "relations_count": 0 + }, + { + "id": 43, + "name": "Мухаметов Ильнар", + "email": "", + "phone": "+7 999 669-33-67", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:26.346481", + "updated_at": "2026-03-15T05:42:26.346515", + "relations_count": 0 + }, + { + "id": 14, + "name": "Мясников Александр", + "email": "", + "phone": "+79210717608", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:21.153553", + "updated_at": "2026-03-15T05:42:21.153629", + "relations_count": 0 + }, + { + "id": 68, + "name": "Надежда Манхеттен", + "email": "", + "phone": "8 921 898-25-85", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.333943", + "updated_at": "2026-03-15T05:42:30.334007", + "relations_count": 0 + }, + { + "id": 209, + "name": "Назарова Александра Викторовна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.695813", + "updated_at": "2026-03-15T05:42:56.695874", + "relations_count": 0 + }, + { + "id": 63, + "name": "Настя Малимон", + "email": "", + "phone": "+79116852335", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:29.557319", + "updated_at": "2026-03-15T05:42:29.557349", + "relations_count": 0 + }, + { + "id": 112, + "name": "Настя Шакирова", + "email": "", + "phone": "+79214854728", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:39.288538", + "updated_at": "2026-03-15T05:42:39.288597", + "relations_count": 0 + }, + { + "id": 22, + "name": "Наталья Мама Бори", + "email": "", + "phone": "+7 903 466-07-20", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:22.591864", + "updated_at": "2026-03-15T05:42:22.591911", + "relations_count": 0 + }, + { + "id": 176, + "name": "Наур", + "email": "", + "phone": "@vozhd77", + "organization": "", + "position": "", + "notes": "На Донбассе. Воюет с 2014.", + "created_at": "2026-03-15T05:42:50.879448", + "updated_at": "2026-03-15T05:42:50.879500", + "relations_count": 0 + }, + { + "id": 210, + "name": "Некрасов Алексей Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.839335", + "updated_at": "2026-03-15T05:42:56.839357", + "relations_count": 0 + }, + { + "id": 218, + "name": "Ненашев Александр Валерьевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:58.504178", + "updated_at": "2026-03-15T05:42:58.504208", + "relations_count": 0 + }, + { + "id": 170, + "name": "Никита Алексеевич Затеев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:49.721524", + "updated_at": "2026-03-15T05:42:49.721579", + "relations_count": 0 + }, + { + "id": 219, + "name": "Николаев Антон Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:58.695709", + "updated_at": "2026-03-15T05:42:58.695742", + "relations_count": 0 + }, + { + "id": 211, + "name": "Николаев Игорь Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:56.952521", + "updated_at": "2026-03-15T05:42:56.952560", + "relations_count": 0 + }, + { + "id": 35, + "name": "Николай Александрович Горбаненко", + "email": "", + "phone": "89218139891", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:24.799763", + "updated_at": "2026-03-15T05:42:24.799844", + "relations_count": 0 + }, + { + "id": 166, + "name": "Николай Крюков", + "email": "", + "phone": "+7 960 235-13-56", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:49.132857", + "updated_at": "2026-03-15T05:42:49.132894", + "relations_count": 0 + }, + { + "id": 111, + "name": "Николай Петрович Черный", + "email": "", + "phone": "89210705228", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:39.122687", + "updated_at": "2026-03-15T05:42:39.122711", + "relations_count": 0 + }, + { + "id": 212, + "name": "Новиков Вадим Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:57.165483", + "updated_at": "2026-03-15T05:42:57.165540", + "relations_count": 0 + }, + { + "id": 128, + "name": "Оксана", + "email": "", + "phone": "+7 953 171-32-13", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:41.844615", + "updated_at": "2026-03-15T05:42:41.844665", + "relations_count": 0 + }, + { + "id": 78, + "name": "Оксана Огнева", + "email": "", + "phone": "8 911 006-84-43", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:32.128593", + "updated_at": "2026-03-15T05:42:32.128615", + "relations_count": 0 + }, + { + "id": 59, + "name": "Олег Викторович Лопатин", + "email": "", + "phone": "89214814746", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.967747", + "updated_at": "2026-03-15T05:42:28.967770", + "relations_count": 0 + }, + { + "id": 79, + "name": "Онищенко", + "email": "", + "phone": "89121724618", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:32.323844", + "updated_at": "2026-03-15T05:42:32.323931", + "relations_count": 0 + }, + { + "id": 220, + "name": "Осечкин Роман Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:58.814577", + "updated_at": "2026-03-15T05:42:58.814638", + "relations_count": 0 + }, + { + "id": 221, + "name": "Осмолин Владимир Владимирович", + "email": "", + "phone": "89215581401", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:58.979122", + "updated_at": "2026-03-15T05:42:58.979146", + "relations_count": 0 + }, + { + "id": 222, + "name": "Остапенко Никита Романович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:59.178463", + "updated_at": "2026-03-15T05:42:59.178505", + "relations_count": 0 + }, + { + "id": 64, + "name": "Отец Малимона", + "email": "", + "phone": "+79218642151", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:29.746834", + "updated_at": "2026-05-10T07:24:10.889352", + "relations_count": 0 + }, + { + "id": 101, + "name": "Отец Спб", + "email": "", + "phone": "+79110046322", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:36.471719", + "updated_at": "2026-03-15T05:42:36.471754", + "relations_count": 0 + }, + { + "id": 124, + "name": "Павел", + "email": "", + "phone": "@Pavel0880", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:41.105890", + "updated_at": "2026-03-15T05:42:41.105948", + "relations_count": 0 + }, + { + "id": 58, + "name": "Павел Локтев", + "email": "", + "phone": "8 (904) 613-59-68", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:28.785208", + "updated_at": "2026-03-15T05:42:28.785257", + "relations_count": 0 + }, + { + "id": 141, + "name": "Павел Полтавский", + "email": "", + "phone": "+79214944569", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:44.301654", + "updated_at": "2026-03-15T05:42:44.301688", + "relations_count": 0 + }, + { + "id": 223, + "name": "Павлов Алексей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:59.377177", + "updated_at": "2026-03-15T05:42:59.377198", + "relations_count": 0 + }, + { + "id": 213, + "name": "Павлов Дмитрий Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:57.361861", + "updated_at": "2026-03-15T05:42:57.361884", + "relations_count": 0 + }, + { + "id": 214, + "name": "Панфёрова Галина Сергеевна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:57.623999", + "updated_at": "2026-03-15T05:42:57.624050", + "relations_count": 0 + }, + { + "id": 83, + "name": "Паша Полтавский", + "email": "", + "phone": "+79214944569", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:32.916372", + "updated_at": "2026-03-15T05:42:32.916419", + "relations_count": 0 + }, + { + "id": 224, + "name": "Пашкевич Иван Владимирович", + "email": "", + "phone": "89119330006", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:59.552678", + "updated_at": "2026-03-15T05:42:59.552707", + "relations_count": 0 + }, + { + "id": 215, + "name": "Петрова Юлия Михайловна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:57.755890", + "updated_at": "2026-03-15T05:42:57.755913", + "relations_count": 0 + }, + { + "id": 225, + "name": "Подшивалов Георгий Андреевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Начальник сектора", + "created_at": "2026-03-15T05:42:59.690426", + "updated_at": "2026-05-14T02:33:17.478583", + "relations_count": 0 + }, + { + "id": 216, + "name": "Поляков Сергей Александрович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:58.005579", + "updated_at": "2026-03-15T05:42:58.005636", + "relations_count": 0 + }, + { + "id": 217, + "name": "Попова Анна Викторовна", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:58.305717", + "updated_at": "2026-03-15T05:42:58.305751", + "relations_count": 0 + }, + { + "id": 84, + "name": "Прокат Вело", + "email": "", + "phone": "88129093672", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:33.065999", + "updated_at": "2026-03-15T05:42:33.066061", + "relations_count": 0 + }, + { + "id": 44, + "name": "Радик Ишмаев", + "email": "", + "phone": "89272495520", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:26.522407", + "updated_at": "2026-03-15T05:42:26.522463", + "relations_count": 0 + }, + { + "id": 85, + "name": "Радмила", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:33.204502", + "updated_at": "2026-03-15T05:42:33.204554", + "relations_count": 0 + }, + { + "id": 86, + "name": "Радмир", + "email": "", + "phone": "+79373021892", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:33.596383", + "updated_at": "2026-03-15T05:42:33.596434", + "relations_count": 0 + }, + { + "id": 77, + "name": "Рамис Новый", + "email": "", + "phone": "8 962 693-28-84", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:31.968989", + "updated_at": "2026-03-15T05:42:31.969050", + "relations_count": 0 + }, + { + "id": 100, + "name": "Рамис Сосед", + "email": "", + "phone": "+7 931 982-62-48", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:36.244482", + "updated_at": "2026-03-15T05:42:36.244531", + "relations_count": 0 + }, + { + "id": 173, + "name": "Регина", + "email": "", + "phone": "89817262898", + "organization": "", + "position": "", + "notes": "Жена Икбола. Знакома с Сократом. Общительная.", + "created_at": "2026-03-15T05:42:50.277355", + "updated_at": "2026-03-15T05:42:50.277395", + "relations_count": 0 + }, + { + "id": 12, + "name": "Ренат Наильевич Аитов", + "email": "", + "phone": "+79657986479", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:20.888703", + "updated_at": "2026-03-15T05:42:20.888850", + "relations_count": 0 + }, + { + "id": 121, + "name": "Римма Якупова", + "email": "", + "phone": "+7 937 309-17-17", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.537990", + "updated_at": "2026-03-15T05:42:40.538052", + "relations_count": 0 + }, + { + "id": 13, + "name": "Ринат Аитов", + "email": "", + "phone": "89214870226", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:21.038669", + "updated_at": "2026-03-15T05:42:21.038701", + "relations_count": 0 + }, + { + "id": 119, + "name": "Ринат Ильгизович Якупов", + "email": "rinatka7@bk.ru", + "phone": "+79967980562", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.320586", + "updated_at": "2026-03-15T05:42:40.320632", + "relations_count": 0 + }, + { + "id": 110, + "name": "Роман Ринатович Хусаинов", + "email": "", + "phone": "89214912576", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:38.977862", + "updated_at": "2026-03-15T05:42:38.977918", + "relations_count": 0 + }, + { + "id": 162, + "name": "С.А. Горбунов", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:48.475001", + "updated_at": "2026-03-15T05:42:48.475063", + "relations_count": 0 + }, + { + "id": 94, + "name": "Сафура", + "email": "", + "phone": "+79053542960", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:35.181564", + "updated_at": "2026-03-15T05:42:35.181586", + "relations_count": 0 + }, + { + "id": 91, + "name": "Света Казань родственники", + "email": "", + "phone": "+79655908514", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:34.580369", + "updated_at": "2026-03-15T05:42:34.580392", + "relations_count": 0 + }, + { + "id": 98, + "name": "Света Симановская", + "email": "", + "phone": "8 981 803-22-09", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:35.911553", + "updated_at": "2026-03-15T05:42:35.911609", + "relations_count": 0 + }, + { + "id": 36, + "name": "Светлана Гулюта", + "email": "", + "phone": "89214835894", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:24.983954", + "updated_at": "2026-03-15T05:42:24.983987", + "relations_count": 0 + }, + { + "id": 165, + "name": "Светлана Морозова", + "email": "", + "phone": "@Svetlana_Morozova_Electropribor", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:49.010547", + "updated_at": "2026-03-15T05:42:49.010600", + "relations_count": 0 + }, + { + "id": 135, + "name": "Сергей Константинович Сурин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "Офицер энергонадзора в Можайке. Зп 65 тр. Подрабатывает монтажом под ключ. 2 разряд по пауерлифтингу получил в Няндоме(показывал фото). Планирует уволиться в 2026 году.", + "created_at": "2026-03-15T05:42:43.227613", + "updated_at": "2026-03-15T05:42:43.227643", + "relations_count": 0 + }, + { + "id": 40, + "name": "Серега Емельянович", + "email": "", + "phone": "+79154189674", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:25.778921", + "updated_at": "2026-03-15T05:42:25.779010", + "relations_count": 0 + }, + { + "id": 70, + "name": "Сечко Москва", + "email": "", + "phone": "+79046590150", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:30.667676", + "updated_at": "2026-03-15T05:42:30.667719", + "relations_count": 0 + }, + { + "id": 227, + "name": "Смирнов Алексей Сергеевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:59.940627", + "updated_at": "2026-03-15T05:42:59.940665", + "relations_count": 0 + }, + { + "id": 148, + "name": "Соня", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:45.397991", + "updated_at": "2026-03-15T05:42:45.398043", + "relations_count": 0 + }, + { + "id": 228, + "name": "Стариков Александр Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:00.097057", + "updated_at": "2026-03-15T05:43:00.097091", + "relations_count": 0 + }, + { + "id": 169, + "name": "Стас Маросев", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:49.581718", + "updated_at": "2026-05-14T02:33:20.778179", + "relations_count": 0 + }, + { + "id": 102, + "name": "Степан", + "email": "", + "phone": "+7 914 849-46-02", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:36.628573", + "updated_at": "2026-05-17T04:27:40.531840", + "relations_count": 1 + }, + { + "id": 48, + "name": "Степан Королев", + "email": "st.korolev@list.ru", + "phone": "+79817014384", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:27.251878", + "updated_at": "2026-05-10T08:17:19.742143", + "relations_count": 0 + }, + { + "id": 103, + "name": "Тарасов", + "email": "", + "phone": "+7 911 975-03-84", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:36.783930", + "updated_at": "2026-03-15T05:42:36.783953", + "relations_count": 0 + }, + { + "id": 144, + "name": "Татьяна", + "email": "", + "phone": "+7 995 628 4534", + "organization": "", + "position": "", + "notes": "Бизнес вумен. Учится по вечерам - студентка. Много работатет - рискует перегореть.", + "created_at": "2026-03-15T05:42:44.770697", + "updated_at": "2026-03-15T05:42:44.770720", + "relations_count": 0 + }, + { + "id": 65, + "name": "Теща Малимона", + "email": "", + "phone": "+79112195520", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:29.911947", + "updated_at": "2026-03-15T05:42:29.912041", + "relations_count": 0 + }, + { + "id": 229, + "name": "Тимофеев Виталий Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:00.253713", + "updated_at": "2026-03-15T05:43:00.253775", + "relations_count": 0 + }, + { + "id": 226, + "name": "Топалов Владимир Владимирович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:59.808641", + "updated_at": "2026-03-15T05:42:59.808662", + "relations_count": 0 + }, + { + "id": 31, + "name": "Тумский В Г", + "email": "", + "phone": "89314156919", + "organization": "", + "position": "", + "notes": "ФГУП СКБ \\\"Титан\\\"", + "created_at": "2026-03-15T05:42:24.220384", + "updated_at": "2026-03-15T05:42:24.220434", + "relations_count": 0 + }, + { + "id": 230, + "name": "Тюрюхин Михаил Евгеньевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:00.418988", + "updated_at": "2026-03-15T05:43:00.419044", + "relations_count": 0 + }, + { + "id": 231, + "name": "Тюфряк Андрей Валерьевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:00.611877", + "updated_at": "2026-03-15T05:43:00.611957", + "relations_count": 0 + }, + { + "id": 236, + "name": "Устин", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:01.294031", + "updated_at": "2026-03-15T05:43:01.294088", + "relations_count": 0 + }, + { + "id": 232, + "name": "Ушаков Сергей Иванович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:00.747236", + "updated_at": "2026-03-15T05:43:00.747271", + "relations_count": 0 + }, + { + "id": 233, + "name": "Филименко Ян Игоревич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:00.872021", + "updated_at": "2026-03-15T05:43:00.872045", + "relations_count": 0 + }, + { + "id": 234, + "name": "Чапков Руслан Ильгизович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:01.027109", + "updated_at": "2026-03-15T05:43:01.027145", + "relations_count": 0 + }, + { + "id": 4, + "name": "Шакиров Айдар", + "email": "", + "phone": "+79214854729", + "organization": "", + "position": "", + "notes": "https://yar.diskstation.me/dokuwiki/doku.php?id=wiki:parking:forum:forum", + "created_at": "2026-03-15T05:42:19.669385", + "updated_at": "2026-03-15T05:42:19.669415", + "relations_count": 0 + }, + { + "id": 23, + "name": "Шива Вадим", + "email": "", + "phone": "+380661894022", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:22.791033", + "updated_at": "2026-03-15T05:42:22.791095", + "relations_count": 0 + }, + { + "id": 117, + "name": "Шоди", + "email": "", + "phone": "8 921 641-40-97", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:40.008786", + "updated_at": "2026-03-15T05:42:40.008905", + "relations_count": 0 + }, + { + "id": 8, + "name": "Эмиль Аглиулин", + "email": "", + "phone": "89603975444", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:20.203159", + "updated_at": "2026-03-15T05:42:20.203228", + "relations_count": 0 + }, + { + "id": 7, + "name": "Яковлев А. А", + "email": "", + "phone": "89815539615", + "organization": "", + "position": "", + "notes": "\\\"ЦЕНКИ\\\" НИИСК", + "created_at": "2026-03-15T05:42:20.034206", + "updated_at": "2026-03-15T05:42:20.034245", + "relations_count": 0 + }, + { + "id": 235, + "name": "Яковлев Сергей Николаевич", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:43:01.170322", + "updated_at": "2026-03-15T05:43:01.170368", + "relations_count": 0 + }, + { + "id": 18, + "name": "Якупов Илдус Анварович", + "email": "", + "phone": "", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:21.962744", + "updated_at": "2026-05-17T13:55:24.151928", + "relations_count": 0 + }, + { + "id": 96, + "name": "Якупова Света", + "email": "", + "phone": "+7 937 308-53-58", + "organization": "", + "position": "", + "notes": "", + "created_at": "2026-03-15T05:42:35.513494", + "updated_at": "2026-03-15T05:42:35.513558", + "relations_count": 0 + }, + { + "id": 132, + "name": "Яна Яновна", + "email": "", + "phone": "89110063164", + "organization": "", + "position": "", + "notes": "Регистрация брака. 27.09.2024", + "created_at": "2026-03-15T05:42:42.636658", + "updated_at": "2026-03-15T05:42:42.636726", + "relations_count": 0 + } + ], + "relations": [ + { + "id": 1, + "source": 1, + "source_name": "Иван Иванов", + "target": 2, + "target_name": "Мария Петрова", + "relation_type": "colleague", + "description": "Партнёры по проекту", + "interaction_intensity": "intense", + "created_at": "2026-03-14T09:22:00.514711" + }, + { + "id": 2, + "source": 1, + "source_name": "Иван Иванов", + "target": 3, + "target_name": "Алексей Смирнов", + "relation_type": "friend", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-14T09:22:00.516057" + }, + { + "id": 3, + "source": 3, + "source_name": "Алексей Смирнов", + "target": 1, + "target_name": "Иван Иванов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T04:59:10.431002" + }, + { + "id": 4, + "source": 2, + "source_name": "Мария Петрова", + "target": 1, + "target_name": "Иван Иванов", + "relation_type": "business", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:00:23.796924" + }, + { + "id": 5, + "source": 186, + "source_name": "Горбунов Станислав Александрович", + "target": 157, + "target_name": "И.В. Пашкевич", + "relation_type": "colleague", + "description": "Отношение нейтральные", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:48:15.751607" + }, + { + "id": 6, + "source": 37, + "source_name": "Женя Додонов", + "target": 192, + "target_name": "Жуменков Сергей Васильевич", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:54:44.442326" + }, + { + "id": 7, + "source": 192, + "source_name": "Жуменков Сергей Васильевич", + "target": 113, + "target_name": "Аглиулин Эмиль Шамилевич", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T05:57:57.794219" + }, + { + "id": 8, + "source": 1, + "source_name": "Иван Иванов", + "target": 113, + "target_name": "Аглиулин Эмиль Шамилевич", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-03-15T15:22:39.588059" + }, + { + "id": 9, + "source": 147, + "source_name": "Екатерина Тихова", + "target": 109, + "target_name": "Алексей Ходосов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-05-10T07:47:58.237244" + }, + { + "id": 10, + "source": 181, + "source_name": "Быкова Валентина Сергеевна", + "target": 187, + "target_name": "Гриненков Алексей Владимирович", + "relation_type": "colleague", + "description": "ПНачальник- подчиненный", + "interaction_intensity": "intense", + "created_at": "2026-05-14T02:35:57.602865" + }, + { + "id": 11, + "source": 102, + "source_name": "Степан", + "target": 20, + "target_name": "Артур Ахмедзянов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-05-17T04:23:43.374514" + }, + { + "id": 12, + "source": 161, + "source_name": "А.В. Бельченко", + "target": 20, + "target_name": "Артур Ахмедзянов", + "relation_type": "acquaintance", + "description": "", + "interaction_intensity": "intense", + "created_at": "2026-05-17T13:53:03.182697" + } + ] +} \ No newline at end of file diff --git a/deploy/.env.prod.example b/deploy/.env.prod.example index 476a785..ce6b07f 100644 --- a/deploy/.env.prod.example +++ b/deploy/.env.prod.example @@ -9,4 +9,5 @@ BACKEND_PORT=8000 # Только при profile with-backend (VITE_DATA_MODE=remote) DJANGO_SECRET_KEY=replace-with-long-random-string -ALLOWED_HOSTS=your-domain.com,www.your-domain.com +ALLOWED_HOSTS=social.deepfishing.ru +USE_JWT_AUTH=true diff --git a/deploy/README.md b/deploy/README.md index 8d86c3b..290f4de 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,87 +1,130 @@ -# Production deploy (контейнеры + прокси на хосте) +# Развёртывание Social Graph на сервере + +Инструкция для Linux-сервера (Ubuntu/Debian). Приложение публикуется через Docker; снаружи доступен только веб-прокси (80/443). + +> **Production:** [deploy/social.deepfishing.ru.md](./social.deepfishing.ru.md) — инструкция для https://social.deepfishing.ru ## Схема ```text -[Прокси на хосте :80/:443] - → frontend-контейнер (nginx, 127.0.0.1:8080) - → backend-контейнер (gunicorn, 127.0.0.1:8000 — только при remote) +Интернет :80 / :443 + ↓ +Прокси на хосте (Apache или nginx) + ↓ +┌───────────────────────────────────────┐ +│ frontend-контейнер (nginx) │ +│ 127.0.0.1:8080 → SPA + статика │ +└───────────────────────────────────────┘ + ↓ (только в режиме remote) +┌───────────────────────────────────────┐ +│ backend-контейнер (gunicorn) │ +│ 127.0.0.1:8000 → Django API │ +│ SQLite в Docker volume │ +└───────────────────────────────────────┘ ``` -SPA-маршрутизация (`try_files` → `index.html`) — **внутри** frontend-контейнера (`frontend/nginx.conf`). +| Режим | Где данные | Backend на сервере | +|-------|------------|--------------------| +| **local** (по умолчанию) | IndexedDB в браузере каждого пользователя | не нужен | +| **remote** | SQLite на сервере, общая БД | обязателен | -## 1. Клонирование и подготовка +Режим задаётся при **сборке** фронтенда (`VITE_DATA_MODE`). + +--- + +## 1. Требования к серверу + +- Linux (Ubuntu 22.04+ / Debian 12+) +- Docker Engine + Docker Compose plugin +- Git +- Домен, указывающий на IP сервера (для HTTPS) +- Apache2 **или** nginx на хосте (reverse proxy) + +Установка Docker (если ещё нет): ```bash -git clone /opt/social-graph -cd /opt/social-graph -git checkout main # или нужная ветка - -cp deploy/.env.prod.example deploy/.env.prod -# отредактируйте deploy/.env.prod +curl -fsSL https://get.docker.com | sh +sudo usermod -aG docker "$USER" +# перелогиньтесь, чтобы группа docker применилась +docker compose version ``` -`deploy/.env.prod` в git не коммитится (секреты и локальные порты). +--- -## 2. Local-first (рекомендуется) +## 2. Клонирование проекта -Данные пользователя — в браузере (IndexedDB). Backend на сервере **не поднимать**. +```bash +sudo mkdir -p /opt/social-graph +sudo chown "$USER:$USER" /opt/social-graph +git clone /opt/social-graph +cd /opt/social-graph +git checkout main # или нужная ветка +``` -В `deploy/.env.prod`: +--- + +## 3. Конфигурация окружения + +```bash +cp deploy/.env.prod.example deploy/.env.prod +nano deploy/.env.prod +``` + +### Вариант A — local-first (данные только в браузере) + +Подходит, если сервер — просто «хостинг интерфейса», без общей базы. ```env VITE_DATA_MODE=local + +FRONTEND_BIND=127.0.0.1 +FRONTEND_PORT=8080 ``` +Backend **не поднимается**. Каждый пользователь хранит данные локально; при смене браузера или устройства данные не переносятся автоматически (экспорт/импорт — через UI → Импорт). + +### Вариант B — remote (данные на сервере, вход по логину) + +Подходит для команды или одного аккаунта с доступом с разных устройств. + +```env +VITE_DATA_MODE=remote + +FRONTEND_BIND=127.0.0.1 +FRONTEND_PORT=8080 +BACKEND_BIND=127.0.0.1 +BACKEND_PORT=8000 + +DJANGO_SECRET_KEY=сгенерируйте-длинную-случайную-строку +ALLOWED_HOSTS=your-domain.com,www.your-domain.com +USE_JWT_AUTH=true +``` + +Сгенерировать секретный ключ: + +```bash +python3 -c "import secrets; print(secrets.token_urlsafe(50))" +``` + +Файл `deploy/.env.prod` **не коммитить** — в нём секреты. + +--- + +## 4. Сборка и запуск контейнеров + +Перейдите в каталог проекта: + +```bash +cd /opt/social-graph +``` + +### Только frontend (режим local) + ```bash docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend ``` -Проверка: - -```bash -curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:8080/ -# ожидается 200 -``` - -## 3. Прокси на хосте - -### Apache2 - -```bash -sudo a2enmod proxy proxy_http headers -sudo cp deploy/apache/social-graph.conf /etc/apache2/sites-available/social-graph.conf -``` - -Отредактируйте `ServerName` и при необходимости порты (`FRONTEND_PORT` / `BACKEND_PORT` из `.env.prod`). - -```bash -sudo a2ensite social-graph.conf -sudo apache2ctl configtest -sudo systemctl reload apache2 -``` - -HTTPS: - -```bash -sudo certbot --apache -d your-domain.com -``` - -### nginx на хосте - -См. `deploy/proxy/nginx-host.conf.example`. - -## 4. Remote mode (frontend + backend) - -Общая БД на сервере. В `deploy/.env.prod`: - -```env -VITE_DATA_MODE=remote -DJANGO_SECRET_KEY=длинный-случайный-ключ -ALLOWED_HOSTS=your-domain.com,www.your-domain.com -``` - -Пересоберите frontend (режим зашивается при build) и поднимите оба сервиса: +### Frontend + backend (режим remote) ```bash docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod build @@ -89,48 +132,215 @@ docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --bu docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend ``` -В `deploy/apache/social-graph.conf` раскомментируйте `ProxyPass /api ...` **выше** блока `ProxyPass /`. +Проверка: ```bash -sudo a2enmod proxy proxy_http headers +docker compose -f docker-compose.prod.yml ps +curl -s -o /dev/null -w "frontend: %{http_code}\n" http://127.0.0.1:8080/ +curl -s -o /dev/null -w "backend: %{http_code}\n" http://127.0.0.1:8000/api/v1/meta/choices/ +``` + +Ожидается `200` (backend в режиме remote с JWT может вернуть `401` без токена — это нормально, главное не `502`). + +Логи: + +```bash +docker logs sg_frontend --tail 50 +docker logs sg_backend --tail 50 +``` + +> **Конфликт с dev:** если в том же каталоге запускали `docker compose up`, сначала выполните `docker compose down`. + +--- + +## 5. Прокси на хосте + +Контейнеры слушают только `127.0.0.1`. Наружу открывается прокси. + +### Apache2 + +```bash +sudo apt install apache2 +sudo a2enmod proxy proxy_http headers rewrite +sudo cp deploy/apache/social-graph.conf /etc/apache2/sites-available/social-graph.conf +sudo nano /etc/apache2/sites-available/social-graph.conf +``` + +Измените `ServerName` / `ServerAlias` на ваш домен. + +**При `VITE_DATA_MODE=remote`** раскомментируйте блок API **выше** блока frontend: + +```apache +ProxyPass /api http://127.0.0.1:8000/api +ProxyPassReverse /api http://127.0.0.1:8000/api +``` + +Включите сайт: + +```bash +sudo a2ensite social-graph.conf +sudo a2dissite 000-default.conf # опционально +sudo apache2ctl configtest sudo systemctl reload apache2 ``` -## 5. Обновление +HTTPS: + +```bash +sudo apt install certbot python3-certbot-apache +sudo certbot --apache -d your-domain.com -d www.your-domain.com +``` + +### nginx на хосте + +```bash +sudo apt install nginx +sudo cp deploy/proxy/nginx-host.conf.example /etc/nginx/sites-available/social-graph +sudo nano /etc/nginx/sites-available/social-graph +``` + +Укажите `server_name` и при remote-режиме раскомментируйте `location /api/`. + +```bash +sudo ln -s /etc/nginx/sites-available/social-graph /etc/nginx/sites-enabled/ +sudo nginx -t +sudo systemctl reload nginx +``` + +HTTPS: + +```bash +sudo apt install certbot python3-certbot-nginx +sudo certbot --nginx -d your-domain.com -d www.your-domain.com +``` + +--- + +## 6. Первый вход (режим remote) + +1. Откройте `https://your-domain.com` +2. Перейдите на **Регистрация** (`/register`) и создайте аккаунт +3. Либо войдите под существующим пользователем + +Если на сервере уже есть данные от пользователя `legacy` (миграция), задайте ему пароль: + +```bash +docker compose -f docker-compose.prod.yml --profile with-backend exec backend python manage.py shell +``` + +```python +from django.contrib.auth import get_user_model +User = get_user_model() +u = User.objects.get(username='legacy') +u.set_password('ваш-пароль') +u.save() +exit() +``` + +--- + +## 7. Обновление версии ```bash cd /opt/social-graph git pull + docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend + # при remote: -# docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend + sudo systemctl reload apache2 # или: sudo nginx -s reload ``` -## Порты по умолчанию +При изменении `VITE_DATA_MODE` нужна **пересборка** frontend (`--build`). -| Переменная | Значение | Назначение | -|------------|----------|------------| -| `FRONTEND_PORT` | 8080 | nginx в контейнере `sg_frontend` | -| `BACKEND_PORT` | 8000 | gunicorn в контейнере `sg_backend` | -| `FRONTEND_BIND` | 127.0.0.1 | только loopback на хосте | +--- -Наружу открыт только прокси (80/443). +## 8. Резервное копирование (remote) -## Миграция данных - -| Источник | Действие | -|----------|----------| -| CSV / JSON / **vCard (.vcf)** | UI → Импорт | -| Старый Django SQLite | экспорт JSON → Импорт | -| Локальный бэкап `.json` / `.sgpkg` | UI → «Импорт бэкапа» | - -## Устранение неполадок +База — SQLite в Docker volume `sqlite_data`. ```bash -docker compose -f docker-compose.prod.yml ps -docker logs sg_frontend --tail 50 -docker logs sg_backend --tail 50 # если поднят +docker compose -f docker-compose.prod.yml --profile with-backend exec backend \ + python manage.py dumpdata contacts --indent 2 > backup-contacts-$(date +%F).json ``` -Конфликт имени контейнера с dev: остановите `docker compose down` в том же каталоге перед prod-запуском. +Полный дамп через UI: **Импорт** → экспорт бэкапа (если включён в интерфейсе). + +Копия файла БД (осторожно — только при остановленном backend): + +```bash +docker compose -f docker-compose.prod.yml --profile with-backend stop backend +docker run --rm -v social-graph_sqlite_data:/data -v "$PWD":/backup alpine \ + cp /data/db.sqlite3 /backup/db.sqlite3-$(date +%F) +docker compose -f docker-compose.prod.yml --profile with-backend start backend +``` + +--- + +## 9. Порты и безопасность + +| Переменная | По умолчанию | Назначение | +|------------|--------------|------------| +| `FRONTEND_PORT` | 8080 | nginx в контейнере | +| `BACKEND_PORT` | 8000 | gunicorn | +| `FRONTEND_BIND` | 127.0.0.1 | только localhost | + +Рекомендуется: + +```bash +sudo ufw allow OpenSSH +sudo ufw allow 'Apache Full' # или 'Nginx Full' +sudo ufw enable +``` + +Порты 8080 и 8000 **не** открывать наружу — только через прокси. + +--- + +## 10. Устранение неполадок + +| Симптом | Что проверить | +|---------|----------------| +| 502 Bad Gateway | Контейнеры запущены? `docker ps`, логи `sg_frontend` / `sg_backend` | +| Белая страница после деплоя | Пересобран frontend? `VITE_DATA_MODE` совпадает с ожиданиями | +| API не отвечает в remote | Раскомментирован `ProxyPass /api` в Apache/nginx; backend в profile `with-backend` | +| «Сессия истекла» / 401 | `USE_JWT_AUTH=true` на backend; перелогин | +| Данные не общие между ПК | Нужен `VITE_DATA_MODE=remote`, не `local` | + +Полезные команды: + +```bash +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod ps +docker logs sg_frontend --tail 100 +docker logs sg_backend --tail 100 +docker compose -f docker-compose.prod.yml --profile with-backend exec backend python manage.py migrate +``` + +--- + +## 11. Краткая шпаргалка + +**Local (только UI):** + +```bash +cd /opt/social-graph +cp deploy/.env.prod.example deploy/.env.prod # VITE_DATA_MODE=local +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend +# настроить Apache/nginx → 127.0.0.1:8080 +``` + +**Remote (серверная БД + авторизация):** + +```bash +cd /opt/social-graph +cp deploy/.env.prod.example deploy/.env.prod +# VITE_DATA_MODE=remote, DJANGO_SECRET_KEY, ALLOWED_HOSTS, USE_JWT_AUTH=true +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod build +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend +# прокси: / → :8080, /api → :8000 +``` + +Дополнительно: [README.md](../README.md), разработка — `docker compose up --build` (порты 5173 и 8000). diff --git a/deploy/social.deepfishing.ru.md b/deploy/social.deepfishing.ru.md new file mode 100644 index 0000000..e2ce68f --- /dev/null +++ b/deploy/social.deepfishing.ru.md @@ -0,0 +1,359 @@ +# Развёртывание Social Graph на [social.deepfishing.ru](https://social.deepfishing.ru) + +Инструкция для production-сервера **social.deepfishing.ru**. Приложение публикуется через Docker; снаружи доступен только веб-прокси (80/443). + +**Адрес приложения:** https://social.deepfishing.ru + +--- + +## Схема + +```text +https://social.deepfishing.ru (:443) + ↓ +Прокси на хосте (Apache или nginx) + ↓ +┌───────────────────────────────────────┐ +│ frontend-контейнер (nginx) │ +│ 127.0.0.1:8080 → SPA + статика │ +└───────────────────────────────────────┘ + ↓ (режим remote) +┌───────────────────────────────────────┐ +│ backend-контейнер (gunicorn) │ +│ 127.0.0.1:8000 → Django API │ +│ SQLite в Docker volume │ +└───────────────────────────────────────┘ +``` + +| Режим | Где данные | Backend | +|-------|------------|---------| +| **local** | IndexedDB в браузере | не нужен | +| **remote** | SQLite на сервере | обязателен | + +Для **social.deepfishing.ru** рекомендуется **remote** + `USE_JWT_AUTH=true` (регистрация, вход, общая база). + +--- + +## 1. Требования + +- Linux (Ubuntu 22.04+ / Debian 12+) +- Docker Engine + Docker Compose +- Git +- DNS: запись **A** (или **AAAA**) `social.deepfishing.ru` → IP сервера +- Apache2 **или** nginx на хосте + +Установка Docker: + +```bash +curl -fsSL https://get.docker.com | sh +sudo usermod -aG docker "$USER" +# перелогиньтесь +docker compose version +``` + +--- + +## 2. Клонирование + +```bash +sudo mkdir -p /opt/social-graph +sudo chown "$USER:$USER" /opt/social-graph +git clone /opt/social-graph +cd /opt/social-graph +git checkout main +``` + +--- + +## 3. Конфигурация `deploy/.env.prod` + +```bash +cd /opt/social-graph +cp deploy/.env.prod.example deploy/.env.prod +nano deploy/.env.prod +``` + +### Рекомендуемый конфиг для social.deepfishing.ru (remote) + +```env +VITE_DATA_MODE=remote + +FRONTEND_BIND=127.0.0.1 +FRONTEND_PORT=8080 +BACKEND_BIND=127.0.0.1 +BACKEND_PORT=8000 + +DJANGO_SECRET_KEY=<сгенерируйте-длинную-случайную-строку> +ALLOWED_HOSTS=social.deepfishing.ru +USE_JWT_AUTH=true +``` + +Сгенерировать `DJANGO_SECRET_KEY`: + +```bash +python3 -c "import secrets; print(secrets.token_urlsafe(50))" +``` + +### Альтернатива — только UI (local) + +Если backend не нужен, данные останутся в браузере каждого пользователя: + +```env +VITE_DATA_MODE=local +FRONTEND_BIND=127.0.0.1 +FRONTEND_PORT=8080 +``` + +Файл `deploy/.env.prod` **не коммитить**. + +--- + +## 4. Запуск контейнеров + +```bash +cd /opt/social-graph +``` + +### Remote (frontend + backend) + +```bash +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod build +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend +``` + +### Только frontend (local) + +```bash +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend +``` + +### Проверка на сервере + +```bash +docker compose -f docker-compose.prod.yml ps +curl -s -o /dev/null -w "frontend: %{http_code}\n" http://127.0.0.1:8080/ +curl -s -o /dev/null -w "backend: %{http_code}\n" http://127.0.0.1:8000/api/v1/meta/choices/ +curl -s -o /dev/null -w "public: %{http_code}\n" https://social.deepfishing.ru/ +``` + +Логи: + +```bash +docker logs sg_frontend --tail 50 +docker logs sg_backend --tail 50 +``` + +> Перед prod-запуском остановите dev-контейнеры: `docker compose down` + +--- + +## 5. Прокси на хосте + +Контейнеры слушают **только** `127.0.0.1`. Снаружи — прокси на 80/443. + +### Apache2 + +```bash +sudo apt install apache2 +sudo a2enmod proxy proxy_http headers rewrite ssl +sudo cp deploy/apache/social-graph.conf /etc/apache2/sites-available/social-graph.conf +sudo nano /etc/apache2/sites-available/social-graph.conf +``` + +Пример VirtualHost: + +```apache + + ServerName social.deepfishing.ru + + ProxyPreserveHost On + RequestHeader set X-Forwarded-Proto "https" + RequestHeader set X-Forwarded-For %{REMOTE_ADDR}s + + # API (режим remote) + ProxyPass /api http://127.0.0.1:8000/api + ProxyPassReverse /api http://127.0.0.1:8000/api + + # Frontend SPA + ProxyPass / http://127.0.0.1:8080/ + ProxyPassReverse / http://127.0.0.1:8080/ + + ErrorLog ${APACHE_LOG_DIR}/social-graph-error.log + CustomLog ${APACHE_LOG_DIR}/social-graph-access.log combined + +``` + +```bash +sudo a2ensite social-graph.conf +sudo a2dissite 000-default.conf +sudo apache2ctl configtest +sudo systemctl reload apache2 +``` + +HTTPS (Let's Encrypt): + +```bash +sudo apt install certbot python3-certbot-apache +sudo certbot --apache -d social.deepfishing.ru +``` + +После certbot сайт будет доступен по https://social.deepfishing.ru . + +### nginx на хосте + +```bash +sudo apt install nginx +sudo nano /etc/nginx/sites-available/social-graph +``` + +```nginx +server { + listen 80; + server_name social.deepfishing.ru; + + location /api/ { + proxy_pass http://127.0.0.1:8000/api/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location / { + proxy_pass http://127.0.0.1:8080; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +```bash +sudo ln -s /etc/nginx/sites-available/social-graph /etc/nginx/sites-enabled/ +sudo nginx -t +sudo systemctl reload nginx +sudo certbot --nginx -d social.deepfishing.ru +``` + +--- + +## 6. Первый вход + +1. Откройте https://social.deepfishing.ru +2. **Регистрация:** https://social.deepfishing.ru/register +3. Или **вход:** https://social.deepfishing.ru/login + +Если на сервере есть пользователь `legacy` (данные после миграции), задайте пароль: + +```bash +cd /opt/social-graph +docker compose -f docker-compose.prod.yml --profile with-backend exec backend python manage.py shell +``` + +```python +from django.contrib.auth import get_user_model +User = get_user_model() +u = User.objects.get(username='legacy') +u.set_password('ваш-надёжный-пароль') +u.save() +exit() +``` + +Вход: https://social.deepfishing.ru/login → логин `legacy`. + +--- + +## 7. Обновление + +```bash +cd /opt/social-graph +git pull + +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend + +sudo systemctl reload apache2 # или: sudo nginx -s reload +``` + +Проверка: https://social.deepfishing.ru + +--- + +## 8. Резервное копирование + +```bash +cd /opt/social-graph +docker compose -f docker-compose.prod.yml --profile with-backend exec backend \ + python manage.py dumpdata contacts --indent 2 \ + > backup-social-deepfishing-$(date +%F).json +``` + +Копия SQLite (backend должен быть остановлен): + +```bash +docker compose -f docker-compose.prod.yml --profile with-backend stop backend +docker run --rm -v social-graph_sqlite_data:/data -v "$PWD":/backup alpine \ + cp /data/db.sqlite3 /backup/db-social-deepfishing-$(date +%F).sqlite3 +docker compose -f docker-compose.prod.yml --profile with-backend start backend +``` + +--- + +## 9. Безопасность + +```bash +sudo ufw allow OpenSSH +sudo ufw allow 'Apache Full' # или 'Nginx Full' +sudo ufw enable +``` + +| Порт | Доступ | +|------|--------| +| 443, 80 | открыт (прокси) | +| 8080, 8000 | только 127.0.0.1 | + +--- + +## 10. Устранение неполадок + +| Симптом | Решение | +|---------|---------| +| 502 на https://social.deepfishing.ru | `docker ps`, логи `sg_frontend` / `sg_backend` | +| Страница открывается, API 404 | В прокси включён `ProxyPass /api` → `:8000` | +| 401 / не пускает | `USE_JWT_AUTH=true` в `.env.prod`, пересобрать backend | +| Данные не сохраняются между устройствами | `VITE_DATA_MODE=remote`, пересобрать frontend | +| Белый экран | `docker logs sg_frontend`, пересборка с `--build` | + +```bash +cd /opt/social-graph +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod ps +docker logs sg_frontend --tail 100 +docker logs sg_backend --tail 100 +docker compose -f docker-compose.prod.yml --profile with-backend exec backend python manage.py migrate +``` + +--- + +## 11. Шпаргалка (social.deepfishing.ru, remote) + +```bash +cd /opt/social-graph +cp deploy/.env.prod.example deploy/.env.prod +# ALLOWED_HOSTS=social.deepfishing.ru +# VITE_DATA_MODE=remote +# USE_JWT_AUTH=true +# DJANGO_SECRET_KEY=... + +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod build +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod up -d --build frontend +docker compose -f docker-compose.prod.yml --env-file deploy/.env.prod --profile with-backend up -d --build backend + +# Apache: ServerName social.deepfishing.ru +# ProxyPass /api → 127.0.0.1:8000 +# ProxyPass / → 127.0.0.1:8080 +# certbot --apache -d social.deepfishing.ru +``` + +**Проверка:** https://social.deepfishing.ru diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 942d4dd..ddac846 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -21,6 +21,7 @@ services: SECRET_KEY: ${DJANGO_SECRET_KEY:-change-me-in-production} DEBUG: "False" ALLOWED_HOSTS: ${ALLOWED_HOSTS:-localhost,127.0.0.1} + USE_JWT_AUTH: ${USE_JWT_AUTH:-false} DATABASE_PATH: /app/data/db.sqlite3 volumes: - sqlite_data:/app/data diff --git a/frontend/src/application/usecases/graph.test.js b/frontend/src/application/usecases/graph.test.js index 668d04e..c9314f1 100644 --- a/frontend/src/application/usecases/graph.test.js +++ b/frontend/src/application/usecases/graph.test.js @@ -83,4 +83,19 @@ describe('getGraphBundle', () => { expect(bundle.edges).toHaveLength(1) expect(bundle.edges[0].id).toBe('10') }) + + it('returns empty graph when map has no memberships', async () => { + listContacts.mockResolvedValue([ + { id: '1', name: 'Анна' }, + { id: '2', name: 'Борис' }, + ]) + listRelations.mockResolvedValue([ + { id: '10', source: '1', target: '2', relation_type: 'friend' }, + ]) + listMembershipsByMap.mockResolvedValue([]) + + const bundle = await getGraphBundle({ mapId: 'map-1' }) + expect(bundle.nodes).toHaveLength(0) + expect(bundle.edges).toHaveLength(0) + }) }) diff --git a/frontend/src/application/usecases/networkMaps.js b/frontend/src/application/usecases/networkMaps.js index 7006927..1b91d08 100644 --- a/frontend/src/application/usecases/networkMaps.js +++ b/frontend/src/application/usecases/networkMaps.js @@ -7,6 +7,8 @@ import { const mapRepo = () => getNetworkMapRepository() const membershipRepo = () => getNetworkMapMembershipRepository() +export const DEFAULT_NETWORK_MAP_NAME = 'Основная карта' + export async function listNetworkMaps() { return mapRepo().list() } @@ -26,6 +28,19 @@ export async function createNetworkMap(payload) { return created } +export async function ensureDefaultNetworkMap() { + const maps = await listNetworkMaps() + if (maps.length) return maps[0] + + const { getDefaultNetworkMapType } = await import('./networkMapTypes') + const defaultType = await getDefaultNetworkMapType() + return createNetworkMap({ + name: DEFAULT_NETWORK_MAP_NAME, + description: '', + mapTypeId: defaultType?.id, + }) +} + export async function updateNetworkMap(id, payload) { const updated = await mapRepo().update(id, payload) await appendChange({ diff --git a/frontend/src/components/AddContactToMapModal.vue b/frontend/src/components/AddContactToMapModal.vue index 250f4c8..698a37d 100644 --- a/frontend/src/components/AddContactToMapModal.vue +++ b/frontend/src/components/AddContactToMapModal.vue @@ -1,72 +1,257 @@ diff --git a/frontend/src/components/CreateContactModal.vue b/frontend/src/components/CreateContactModal.vue new file mode 100644 index 0000000..7057943 --- /dev/null +++ b/frontend/src/components/CreateContactModal.vue @@ -0,0 +1,35 @@ + + + diff --git a/frontend/src/components/GraphCanvasContextMenu.vue b/frontend/src/components/GraphCanvasContextMenu.vue new file mode 100644 index 0000000..f578d6d --- /dev/null +++ b/frontend/src/components/GraphCanvasContextMenu.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/frontend/src/components/SearchableSelect.vue b/frontend/src/components/SearchableSelect.vue index 6cc386f..a15dcfb 100644 --- a/frontend/src/components/SearchableSelect.vue +++ b/frontend/src/components/SearchableSelect.vue @@ -16,7 +16,7 @@ @blur="onBlur" @keydown="onKeydown" /> -
    +
    +

    + Начните вводить имя для поиска +

    Ничего не найдено

    @@ -62,7 +65,7 @@ const allOptions = computed(() => const filteredOptions = computed(() => { const q = query.value.trim().toLocaleLowerCase('ru') - if (!q) return allOptions.value + if (!q) return [] return allOptions.value.filter((o) => o.label.toLocaleLowerCase('ru').includes(q) ) diff --git a/frontend/src/composables/useGraphNodeContextMenu.js b/frontend/src/composables/useGraphNodeContextMenu.js index 81626c1..c8aa759 100644 --- a/frontend/src/composables/useGraphNodeContextMenu.js +++ b/frontend/src/composables/useGraphNodeContextMenu.js @@ -9,11 +9,15 @@ export function useGraphNodeContextMenu() { const contextMenuEdge = ref(null) const edgeContextMenuX = ref(0) const edgeContextMenuY = ref(0) + const canvasContextMenuOpen = ref(false) + const canvasContextMenuX = ref(0) + const canvasContextMenuY = ref(0) function openContextMenu(node, event) { if (!node || !event) return edgeContextMenuOpen.value = false contextMenuEdge.value = null + canvasContextMenuOpen.value = false contextMenuNode.value = node contextMenuX.value = event.clientX contextMenuY.value = event.clientY @@ -24,17 +28,30 @@ export function useGraphNodeContextMenu() { if (!edge || !event) return contextMenuOpen.value = false contextMenuNode.value = null + canvasContextMenuOpen.value = false contextMenuEdge.value = edge edgeContextMenuX.value = event.clientX edgeContextMenuY.value = event.clientY edgeContextMenuOpen.value = true } + function openCanvasContextMenu(event) { + if (!event) return + contextMenuOpen.value = false + contextMenuNode.value = null + edgeContextMenuOpen.value = false + contextMenuEdge.value = null + canvasContextMenuX.value = event.clientX + canvasContextMenuY.value = event.clientY + canvasContextMenuOpen.value = true + } + function closeContextMenu() { contextMenuOpen.value = false contextMenuNode.value = null edgeContextMenuOpen.value = false contextMenuEdge.value = null + canvasContextMenuOpen.value = false } function closeEdgeContextMenu() { @@ -42,6 +59,10 @@ export function useGraphNodeContextMenu() { contextMenuEdge.value = null } + function closeCanvasContextMenu() { + canvasContextMenuOpen.value = false + } + function resolveEdgeAtPointer(network, domEvent, getEdges) { let edgeId = null if (domEvent && typeof network.getPointer === 'function' && typeof network.getEdgeAt === 'function') { @@ -82,7 +103,7 @@ export function useGraphNodeContextMenu() { } } - closeContextMenu() + openCanvasContextMenu(domEvent) } network.on('oncontext', onContext) @@ -98,10 +119,15 @@ export function useGraphNodeContextMenu() { contextMenuEdge, edgeContextMenuX, edgeContextMenuY, + canvasContextMenuOpen, + canvasContextMenuX, + canvasContextMenuY, openContextMenu, openEdgeContextMenu, + openCanvasContextMenu, closeContextMenu, closeEdgeContextMenu, + closeCanvasContextMenu, attachNodeContextHandlers, } } diff --git a/frontend/src/infrastructure/repositories/networkMapMembershipRepository.remote.js b/frontend/src/infrastructure/repositories/networkMapMembershipRepository.remote.js index e6058cf..e5b1414 100644 --- a/frontend/src/infrastructure/repositories/networkMapMembershipRepository.remote.js +++ b/frontend/src/infrastructure/repositories/networkMapMembershipRepository.remote.js @@ -23,7 +23,10 @@ export const remoteNetworkMapMembershipRepository = { return data }, async create(mapId, payload) { - const { data } = await api.post(`/network-maps/${mapId}/memberships/`, payload) + const { data } = await api.post(`/network-maps/${mapId}/memberships/`, { + map: mapId, + ...payload, + }) return data }, async update(mapId, id, payload) { diff --git a/frontend/src/lib/map/conflictLayout.js b/frontend/src/lib/map/conflictLayout.js index dfa3cfa..66f1e08 100644 --- a/frontend/src/lib/map/conflictLayout.js +++ b/frontend/src/lib/map/conflictLayout.js @@ -3,6 +3,7 @@ import { radiusRatioFromInvolvement, involvementFromRadiusRatio, } from '../../domain/conflictology' +import { hasStoredMapPlacement } from './positioning' export { CONFLICT_CENTER_NODE_ID } @@ -23,12 +24,14 @@ export function computeConflictPositions(nodes, layout) { } export function conflictNodeXY(node, layout, posById) { - const ratio = Number(node.map_radius_ratio) - const storedAngle = Number(node.map_angle) - if (Number.isFinite(ratio) && Number.isFinite(storedAngle)) { - const safeRatio = Math.max(0, Math.min(1, ratio)) - const r = safeRatio * layout.rOuter - return { x: r * Math.cos(storedAngle), y: r * Math.sin(storedAngle) } + if (hasStoredMapPlacement(node)) { + const ratio = Number(node.map_radius_ratio) + const storedAngle = Number(node.map_angle) + if (Number.isFinite(ratio) && Number.isFinite(storedAngle)) { + const safeRatio = Math.max(0, Math.min(1, ratio)) + const r = safeRatio * layout.rOuter + return { x: r * Math.cos(storedAngle), y: r * Math.sin(storedAngle) } + } } const p = posById.get(node.id) if (p) return p diff --git a/frontend/src/lib/map/positioning.js b/frontend/src/lib/map/positioning.js index 54dff54..54280b8 100644 --- a/frontend/src/lib/map/positioning.js +++ b/frontend/src/lib/map/positioning.js @@ -53,6 +53,12 @@ export function normalizedCircle(n, geometry = defaultGeometry()) { return circleKeys[Math.floor(circleKeys.length / 2)] || circleKeys[0] || 'productivity' } +export function hasStoredMapPlacement(node) { + const angle = node?.map_angle + const ratio = node?.map_radius_ratio + return angle != null && ratio != null && angle !== '' && ratio !== '' +} + export function computePolarPositions(rawNodes, layout, geometry = defaultGeometry()) { const { sectorKeys } = geometry const groups = new Map() @@ -87,12 +93,14 @@ export function computePolarPositions(rawNodes, layout, geometry = defaultGeomet export function nodeXY(n, layout, posById, geometry = defaultGeometry()) { const { sectorKeys } = geometry - const ratio = Number(n.map_radius_ratio) - const storedAngle = Number(n.map_angle) - if (Number.isFinite(ratio) && Number.isFinite(storedAngle)) { - const safeRatio = Math.max(0, Math.min(1, ratio)) - const r = safeRatio * layout.rOuter - return { x: r * Math.cos(storedAngle), y: r * Math.sin(storedAngle) } + if (hasStoredMapPlacement(n)) { + const ratio = Number(n.map_radius_ratio) + const storedAngle = Number(n.map_angle) + if (Number.isFinite(ratio) && Number.isFinite(storedAngle)) { + const safeRatio = Math.max(0, Math.min(1, ratio)) + const r = safeRatio * layout.rOuter + return { x: r * Math.cos(storedAngle), y: r * Math.sin(storedAngle) } + } } const p = posById.get(n.id) if (p) return p diff --git a/frontend/src/lib/map/positioning.test.js b/frontend/src/lib/map/positioning.test.js index e688d53..83cd018 100644 --- a/frontend/src/lib/map/positioning.test.js +++ b/frontend/src/lib/map/positioning.test.js @@ -4,6 +4,7 @@ import { sphereByAngle, ringByRadius, nodeXY, + computePolarPositions, defaultGeometry, } from './positioning' @@ -40,6 +41,19 @@ describe('map positioning', () => { expect(p.y).toBeCloseTo(0) }) + it('ignores null persisted coordinates and spreads nodes in sector', () => { + const layout = { rInner: 10, rMid: 20, rOuter: 100, cx: 0, cy: 0 } + const nodes = [ + { id: 1, life_sphere: 'other', network_circle: 'productivity', map_angle: null, map_radius_ratio: null }, + { id: 2, life_sphere: 'other', network_circle: 'productivity', map_angle: null, map_radius_ratio: null }, + ] + const posById = computePolarPositions(nodes, layout) + const p1 = nodeXY(nodes[0], layout, posById) + const p2 = nodeXY(nodes[1], layout, posById) + expect(p1.x).not.toBeCloseTo(p2.x) + expect(Math.hypot(p1.x, p1.y)).toBeGreaterThan(0) + }) + it('defaultGeometry matches SPHERE_ORDER', () => { expect(defaultGeometry().sectorKeys).toEqual(SPHERE_ORDER) }) diff --git a/frontend/src/views/GraphView.vue b/frontend/src/views/GraphView.vue index 135da69..83a9eb2 100644 --- a/frontend/src/views/GraphView.vue +++ b/frontend/src/views/GraphView.vue @@ -34,7 +34,7 @@ -
    +
    -
    +
    @@ -139,6 +139,20 @@ @edit="openEditRelation" /> + + + + 0) return + openCanvasContextMenu(event) +} + +async function onContactCreated(data, mapIds, pluginPayload) { + const created = await store.createContact(data) + if (mapIds?.length) { + await mapsStore.setContactMapMemberships(created.id, mapIds) + } + const { saveContactPluginData } = await import('../application/services/contactPluginService') + await saveContactPluginData(created.id, pluginPayload) + createContactOpen.value = false + await ensureGraphReady({ showSpinner: false }) +} + const store = useContactsStore() +const mapsStore = useNetworkMapsStore() const router = useRouter() const graphToolbarActions = getGraphToolbarActions() const graphArea = ref(null) diff --git a/frontend/src/views/NetworkMapRedirect.vue b/frontend/src/views/NetworkMapRedirect.vue index b65539b..842e8e2 100644 --- a/frontend/src/views/NetworkMapRedirect.vue +++ b/frontend/src/views/NetworkMapRedirect.vue @@ -7,6 +7,7 @@ diff --git a/frontend/src/views/NetworkMapView.vue b/frontend/src/views/NetworkMapView.vue index 771b526..57a8fc9 100644 --- a/frontend/src/views/NetworkMapView.vue +++ b/frontend/src/views/NetworkMapView.vue @@ -15,7 +15,7 @@ @create="openCreateMap" @manage="openEditMap" /> - @@ -42,15 +42,18 @@ -
    +

    На карте «{{ activeMap?.name || 'сети' }}» никого нет. - - из общего списка контактов или создайте новых в - карточках контактов.

    +
    + + или создайте контакт в карточках контактов +
    @@ -112,6 +115,21 @@ @edit="openEditRelation" /> + + + +
    @@ -174,6 +191,7 @@ import { involvementNodeSize, } from '../domain/conflictology' import { fetchGraphBundle } from '../composables/useGraphData' +import { ensureDefaultNetworkMap } from '../application/usecases/networkMaps' import { edgeFromRelation } from '../application/usecases/graph' import NetworkMapTopPanel from '../components/NetworkMapTopPanel.vue' import NetworkMapSwitcher from '../components/NetworkMapSwitcher.vue' @@ -182,6 +200,8 @@ import AddContactToMapModal from '../components/AddContactToMapModal.vue' import CreateRelationModal from '../components/CreateRelationModal.vue' import GraphNodeContextMenu from '../components/GraphNodeContextMenu.vue' import GraphEdgeContextMenu from '../components/GraphEdgeContextMenu.vue' +import GraphCanvasContextMenu from '../components/GraphCanvasContextMenu.vue' +import CreateContactModal from '../components/CreateContactModal.vue' import EditRelationModal from '../components/EditRelationModal.vue' import { useGraphNodeContextMenu } from '../composables/useGraphNodeContextMenu.js' import { useNetworkMapsStore } from '../stores/networkMaps' @@ -200,16 +220,46 @@ const { contextMenuEdge, edgeContextMenuX, edgeContextMenuY, + canvasContextMenuOpen, + canvasContextMenuX, + canvasContextMenuY, + openCanvasContextMenu, closeContextMenu, closeEdgeContextMenu, attachNodeContextHandlers, } = useGraphNodeContextMenu() +const createContactOpen = ref(false) + function openNodeInfo(node) { selectedNode.value = node || null selectedInvolvement.value = Number(node?.conflict_involvement) || 3 } +function openCreateContact() { + closeContextMenu() + createContactOpen.value = true +} + +function onMapBodyContextMenu(event) { + if (loading.value || nodes.value.length > 0) return + openCanvasContextMenu(event) +} + +async function onContactCreated(data, mapIds, pluginPayload) { + const created = await store.createContact(data) + const targetMapIds = mapIds?.length + ? mapIds + : (mapId.value ? [String(mapId.value)] : []) + if (targetMapIds.length) { + await mapsStore.setContactMapMemberships(created.id, targetMapIds) + } + const { saveContactPluginData } = await import('../application/services/contactPluginService') + await saveContactPluginData(created.id, pluginPayload) + createContactOpen.value = false + await load() +} + async function saveInvolvement() { const node = selectedNode.value if (!node?.membership_id) return @@ -334,6 +384,9 @@ const mapsStore = useNetworkMapsStore() const typesStore = useNetworkMapTypesStore() const mapId = computed(() => String(route.params.mapId || '')) +const createContactMapIds = computed(() => ( + mapId.value ? [String(mapId.value)] : [] +)) const activeMap = computed(() => mapsStore.maps.find((m) => String(m.id) === mapId.value) || null) const activeMapType = computed(() => { const typeId = activeMap.value?.mapTypeId @@ -691,7 +744,12 @@ function buildVisNodes() { } function initNetwork() { - if (!graphContainer.value) return + if (!graphContainer.value) { + if (initRetryCount >= INIT_RETRY_MAX) return + initRetryCount += 1 + initRetryTimer = setTimeout(initNetwork, 80) + return + } measureLayout() const el = graphContainer.value let { w, h } = layout.value @@ -877,8 +935,9 @@ async function load() { } finally { loading.value = false } + await store.fetchContacts() if (nodes.value.length > 0) { - await store.fetchContacts() + initRetryCount = 0 await nextTick() await new Promise((r) => requestAnimationFrame(() => requestAnimationFrame(r))) initNetwork() @@ -890,6 +949,10 @@ async function load() { } } +async function openAddContact() { + showAddContact.value = true +} + function switchMap(nextId) { if (!nextId || String(nextId) === mapId.value) return router.push({ name: 'NetworkMap', params: { mapId: nextId } }) @@ -930,8 +993,13 @@ async function onMapDelete() { closeMapForm() if (String(mapId.value) === String(deletingId)) { const nextId = mapsStore.maps[0]?.id - if (nextId) router.replace({ name: 'NetworkMap', params: { mapId: nextId } }) - else router.replace({ name: 'Contacts' }) + if (nextId) { + router.replace({ name: 'NetworkMap', params: { mapId: nextId } }) + return + } + const created = await ensureDefaultNetworkMap() + await mapsStore.fetchMaps() + router.replace({ name: 'NetworkMap', params: { mapId: created.id } }) } } @@ -941,6 +1009,13 @@ async function onAddContactToMap(contactId) { await load() } +watch(graphContainer, (el) => { + if (el && nodes.value.length > 0 && !network.value) { + initRetryCount = 0 + initNetwork() + } +}) + watch(mapId, async (next, prev) => { if (!next || next === prev) return network.value?.destroy() @@ -1039,4 +1114,11 @@ onUnmounted(() => { .legend-tension { color: #f1c40f; } .legend-alliance { color: #2ecc71; } .legend-neutral { color: #95a5a6; } +.empty-state-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 10px; + margin-top: 12px; +}