BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

Отраслевые решения

  • Дистрибуция
  • Розничная торговля
  • Производство
  • Операторы связи
  • Банки
  • Страхование
  • Фармацевтика
  • Нефтегазовый сектор
  • Лизинг
  • Логистика
  • Медицина
  • Сеть ресторанов
  • Сельское хозяйство и агрохолдинги
  • Энергетика
  • E-Commerce
  • FMCG
  • Пищевая промышленность
  • Селлеры на маркетплейсах
  • Строительные компании и девелоперы

Функциональные решения

  • Управление по KPI
  • Финансы
  • Продажи
  • Склад
  • Категорийный менеджмент
  • HR
  • Маркетинг
  • Внутренний аудит
  • Геоаналитика, аналитика на географической карте
  • Цепочка поставок (SCM)
  • S&OP и FP&A
  • Разработка стратегии цифровой трансформации
  • Process Mining
  • Интегрированное планирование (IBP)
  • Закупки
  • ИТ (CIO)
  • Построение хранилища данных
  • Создание Data Lake и Data Engineering
Главная » Решения Эксперт-BI на российских BI-платформах » Эксперт-BI для розничной торговли (сетей магазинов) » Универсальное решение для анализа чеков » BI/DWH для Анализа чеков » Определение ценности клиента - расчет суммарного объема покупок клиента за период

Определение ценности клиента - расчет суммарного объема покупок клиента за период

В рамках BI DWH для анализа чеков задача определения ценности клиента через расчет суммарного объема покупок за заданный период является ключевой для сегментации и планирования. В данной главе рассматриваются принципы построения аналитики, где агрегируемые показатели зависят от корректной интеграции источников, единообразия данных и устойчивости к изменениям бизнес-правил. Особое внимание уделено архитектурным решениям, выбору моделей данных и методикам реализации, которые позволяют обеспечить единый и воспроизводимый показатель для всех клиентов в рамках заданного временного окна.

Цель главы состоит в том, чтобы перейти от концепций к практическим реализациям: определить, какие источники нужно соединять, как нормализовать величины в базовой валюте, каким образом строить агрегации на уровне клиента и как организовать загрузку данных в DW так, чтобы расчеты можно было повторять с минимальными рисками и задержками. В результате читатель получает четкое видение того, как проектировать и внедрять датасеты, которые стабильны в периоды миграций источников, обновлений курсов валют и изменений бизнес-правил.

 

Краткое содержание главы

  • Архитектура данных и концепции нормализации для расчета суммарного объема покупок
  • Модели данных, агрегации и выбор периодов: как задавать окна времени
  • Интеграции данных, протоколы загрузки и управление качеством
  • Реализация и производительность: примеры запросов и паттерны оптимизации
  • Практические рекомендации по внедрению и единым метрикам

     

Контекст и цель определения ценности клиента

Определение ценности клиента через суммарный объем покупок за период является одной из базовых метрик для анализа потребительского поведения и эффективности торговых стратегий. В отличие от долговременной ценности клиента (LTV), здесь важна относительная и оперативная картинка: какие клиенты принесли наибольший оборот за конкретный временной интервал (месяц, квартал, сезон). Это позволяет оперативно выделять целевые группы для промо-акций, пересматривая ассортимент и план закупок.

 

Ключевые принципы включают:

  • Согласование единиц измерения: денежная сумма и количество позиций должны соответствовать бизнес-правилам и возможностям DW. Часто требуется конвертация в базовую валюту для корректного суммирования.
  • Учет реальных продаж: корректность учитываемых заказов, возвратов и аннулированных операций. В рамках расчета целевой величины возможно разделение валового оборота и чистого оборота после возвратов.
  • Обеспечение повторяемости расчета: сохраняем параметры периода (start_date, end_date), версию бизнес-правил и инструменты загрузки, чтобы расчеты можно воспроизводить в любой момент времени.
  • Непрерывность и консистентность: интеграция источников из разных систем (POS, онлайн-магазин, B2B-портал) должна обеспечивать согласованность измерений и корректную агрегацию.

В аналитической архитектуре для данной задачи важно отделить слой источников данных, слой бизнес-логики и слой представления. Это позволяет независимо развивать каждый компонент и минимизировать влияние изменений бизнес-правил на существующую аналитику.

 

Архитектура и схематизация данных

Этап проектирования начинается с определения ключевых сущностей и связей. В типичной DW-архитектуре для анализа чеков целесообразно использовать звездную схему, где факт Purchase содержит агрегируемые величины, а размерные таблицы описывают контекст клиента, времени, магазина и продукта.

  • Факт-таблица фактов покупок (fact_purchases) должна включать как минимум:

    • customer_id (FK к dim_customer)
    • date_key (FK к dim_date)
    • store_id (FK к dim_store)
    • product_id (FK к dim_product)
    • amount AND/OR amount_base (сумма по сделке в валюте транзакции и сумма в базовой валюте)
    • currency_code (код валюты транзакции)
    • quantity (количество единиц товара в транзакции)
  • Измерения:

    • dim_customer: customer_id, сегменты, статус, дата регистрации, изменение профиля (SCD-2)
    • dim_date: date_key, calendar_date, year, month, quarter, day_of_week
    • dim_store: store_id, регион, формат, цепочка
    • dim_product: product_id, category, цена, валюта
  • Конвертация валют:

    • dim_currency_rate или отдельная таблица конвертации, содержащая rate_by_date и currency_code
    • для поддержки точности ключевой вопрос - когда и как конвертировать: на этапе загрузки (ELT) или на этапе запроса (ETL)
  • Предусмотреть агрегаты и темплейты предагрегированных таблиц:

    • agg_customer_period_spend(customer_id, period_start, period_end, total_amount_base, total_items)
    • agg_customer_period_summary(customer_id, period_start, period_end, total_amount_base, total_items, store_count, product_count)
  • Инфраструктурные паттерны:

    • «Staging → Core DW → Data Mart» парадигма
    • поддержка инкрементальных загрузок и исторических версий
    • средства обеспечения консистентности и идентификации ошибок на каждом слое

Архитектура должна предусматривать гибкость: возможность расчета не только суммарного объема за период, но и дополнительных метрик, например средней цены за единицу, доли по сегментам, каналу продаж и т. п. При этом важно сохранить единый источник фактов и единый подход к агрегации.

 

Источники данных и качество данных

Источники могут включать POS-терминалы, онлайн-заказы, мобильные приложения и ERP-системы. Важным предприятием становится согласование дат, клиентов и валют. В случае возможных расхождений полезно:

  • внедрять идентификаторы клиента с SCD-типа 2 для сохранения истории профилей
  • поддерживать единый стандарт currency_code и период конвертации
  • реализовать проверки полноты данных (наличие всех ключевых измерений в каждой транзакции)
  • применятьrafc проверки на повторные продажи (duplicate detection) и корректную обработку возвратов

Без должной схемы конвертации валют расчеты суммарного объема будут искажены, особенно в мультивалютных сегментах.

 

Модель данных и схема потоков

Визуально:

  • dim_date → dim_customer → fact_purchases
  • dim_store и dim_product подключаются для возможности анализа по каналам и ассортименту
  • существование агрегированных таблиц обеспечивает быстрый доступ к ожидаемым метрикам без повторной агрегации на уровне больших объемов данных

Алгоритмически при расчете суммарного объема параметры периода задаются как аннотированные границы времени (start_date, end_date). Для учета валюты и корректного представления в базовой валюте применяются соответствующие преобразования.

 

Протоколы загрузки и интеграции

Глава детально о протоколах загрузки - ETL и ELT - и выборе между пакетной обработкой и стримингом. В сценариях чеков чаще применяется ELT: данные сначала загружаются в «staging», затем - в DW и материализованные представления. Примеры инструментов: Apache Airflow как оркестратор, dbt как инструмент трансформации и управления моделями данных. Эти решения подходят для корректной организации зависимостей, тестирования моделей и контроля качества данных. В рамках данного раздела рекомендуется держать под рукой две конкретные практики:

  • декларативная спецификация периодов: параметризация запросов для start_date и end_date обеспечивает воспроизводимость и удобство ретроспективного анализа
  • управление качеством данных на вход: встроенные тесты в dbt или аналогичные механизмы для проверки наличия необходимых полей и корректности типов

     

Пример реализации расчета: агрегирование по клиенту за период

Ниже приводится практический пример, иллюстрирующий как реализовать суммарный объем покупок по клиенту за заданный период с учетом конвертации валют. Этот пример демонстрирует базовую идею и может быть адаптирован под конкретную схему DW.

-- Пример 1: простой расчет в базовой валюте (если amount уже приведено к base_currency)
SELECT
  c.customer_id,
  SUM(f.amount_base) AS total_spent_base,
  SUM(f.quantity) AS total_items
FROM
  fact_purchases f
  JOIN dim_customer c ON f.customer_key = c.customer_key
  JOIN dim_date d ON f.date_key = d.date_key
WHERE
  d.calendar_date >= :start_date
  AND d.calendar_date 
-- Пример 2: конвертация суммы в базовую валюту на основе курса на дату транзакции
SELECT
  c.customer_id,
  SUM(p.amount_in_base) AS total_spent_base,
  SUM(p.quantity) AS total_items
FROM (
  SELECT
    f.customer_key,
    f.date_key,
    f.quantity,
    CASE
      WHEN cr.currency_code IS NULL THEN f.amount
      ELSE f.amount * cr.rate_to_base
    END AS amount_in_base
## FROM fact_purchases f
  JOIN dim_date d ON f.date_key = d.date_key
## LEFT JOIN dim_currency_rate cr
    ON cr.currency_code = f.currency_code AND cr.date_key = d.date_key
) AS p
JOIN dim_customer c ON p.customer_key = c.customer_key
WHERE
  p.date_key BETWEEN :start_date_key AND :end_date_key
GROUP BY
  c.customer_id;

В обоих случаях результаты можно хранить в предагрегированной таблице agg_customer_period_spend, что позволяет ускорить повторные расчеты и обеспечить консистентный набор метрик для отчетности.

 

Окна времени и периодизация

Выбор периода имеет критическое значение: месячные, квартальные или скользящие окна. Практика показывает, что для операционной аналитики чаще применяют monthly и quarterly окна, а для маркетинговых задач - скользящие 90-180 дней. В DW целесообразно хранить:

  • period_start и period_end как независимый параметр, а также
  • date_key для точной привязки к дате событий.

Это позволяет формировать не только суммарный объем за конкретный календарный месяц, но и анализировать динамику изменений по периодам, сравнивать периоды «до/после» и строить базовые KPI для монетизации клиентской базы.

 

Валидность данных и качество

Расчет ценности клиента чувствителен к качеству данных. Рекомендуется внедрить:

  • контроль полноты фактов по каждому периоду: минимальный набор полей в fact_purchases
  • тесты на корректность конвертации валют: проверка существования курсов и отсутствие нулевых ставок
  • мониторинг дубликатов транзакций и корректность обработки возвратов
  • верификацию параметров периода: start_date <= end_date и соответствие календарю

     

Оптимизация и производительность

Для больших объемов данных следует рассмотреть:

  • использование предагрегированных таблиц (agg_) по клиенту и периоду
  • партиционирование по date_key и/или period_start
  • денормализацию некоторых измерений для ускорения агрегаций
  • хранение amount_base и quantity в факт_таблице, когда это возможно, чтобы сократить количество вычислений во время запроса
  • кэширование часто запрашиваемых метрик на уровне OLAP-куба или в быстром слое (OLAP-сегменты)

     

Интеграционные практики и протоколы

  • ETL vs ELT: для DW рекомендуется ELT-подход, когда данные из источников сначала загружаются в staging, затем в DW, где выполняются трансформации и агрегации в рамках согласованных моделей.
  • Контроль версий моделей: изменения в измерениях клиента или периодах должны сопровождаться миграциями и тестами, чтобы не сломать существующие отчеты.
  • Безопасность и доступ: определение политики доступа к чувствительной информации о клиентах, а также журналирование операций по расчетам.

     

Реализация: архитектурные паттерны

  • Модульность: расчеты за период вынести в отдельный сервис или пакет трансформаций, который можно повторно использовать в разных отчетах.
  • Повторяемость: хранение параметров периода и версии бизнес-правил позволяет повторно воссоздать показатели с той же логикой.
  • Доказуемость и тестируемость: набор тестов на корректность агрегаций и валидность данных, включая тесты на конвертации валют и обработку возвратов.

     

Производственные сценарии внедрения

  • Сценарий 1: агрегации за календарный месяц с конвертацией валют в базовую

    • источники: POS, онлайн-магазин
    • цель: получить ежемесячный рейтинг клиентов по суммарному обороту
    • результат: agg_customer_period_spend и таблицы отчетности для BI-платформы
  • Сценарий 2: скользящее окно 90 дней для маркетинговой аналитики

    • источники: все каналы продаж
    • цель: определить активность клиентов за последние 90 дней
    • результат: динамические дэшборды и триггеры для акций
  • Сценарий 3: сегментация по клиенту и региону

    • источники: dim_customer, dim_store
    • цель: сравнить объем покупок по региональным сегментам и определить лидеров по объему
    • результат: гео- и сегментированные расчеты суммарного объема

       

Key takeaways

  • Правильная постановка архитектуры данных критична для воспроизводимой оценки суммарного объема покупок по клиенту за период.
  • Важна единая валюта и корректная конвертация: без унифицированной базовой валюты сравнения будут недостоверны.
  • Эффективная агрегация требует продуманной модели данных и применения предагрегатов для быстродействия отчетности.
  • Интеграции должны поддерживать как пакетный, так и инкрементальный режимы загрузки с контролем качества.
  • Точные параметры периода и версия бизнес-правил необходимы для воспроизводимости расчетов во времени.
  • Включение проверки качества на всех этапах загрузки минимизирует риски ошибок в аналитике клиентов.
  • Внедрение методик тестирования и мониторинга повысит доверие к метрикам на уровне всей организации.

     

FAQ

  1. Что именно считается «суммарным объемом покупок» в рамках главы?
  • В контексте данной главы это сумма денежных затрат клиента за заданный период, с возможной опциональной агрегацией по количеству позиций. При необходимости можно считать и количество товаров, и валовую выручку по каждому клиенту. В большинстве сценариев бизнес-подразделения стремятся к единообразию определения в DW, чтобы сравнения между периодами были валидными.

 

  1. Какую роль играет валютная конвертация в расчетах?
  • Валютная конвертация обеспечивает сопоставимость сумм между покупками в разных валютах. Без конвертации итоговая сумма может быть искажена. Рекомендовано хранить конвертацию на дату сделки или конвертировать на этапе агрегаций в базовую валюту, чтобы обеспечить единый показатель across periods and regions.

 

  1. Как выбрать период (start_date, end_date) для расчета?
  • Выбор периода зависит от задачи анализа: месячная отчётность, квартальные обзоры, скользящие окна. Рекомендуется хранить параметры периода как часть бизнес-логики и сохранять историю версий расчета, чтобы обеспечить воспроизводимость и аудит изменений.

 

  1. Какие архитектурные паттерны лучше всего подходят для DW?
  • Эпизоды «Staging → Core DW → Data Mart» с ELT-подходом дают гибкость в трансформациях и быструю адаптацию к изменениям источников. Предагрегаты по клиентам и периодам уменьшают нагрузку на отчеты и улучшают время отклика BI.

 

  1. Какие практики контроля качества особенно важны?
  • Проверки полноты фактов, корректности данных по курсам валют и датам, тесты на отсутствие дублирования и валидность параметров периода. В целом важна связность между фактами и измерениями.

 

  1. Какие примеры инструментов наиболее уместны для реализации?
  • Apache Airflow в качестве оркестратора и dbt как инструмент трансформации и тестирования моделей данных. Эти инструменты хорошо интегрируются в современные DWH-архитектуры и поддерживают повторяемость расчетов.

 

  1. Как бороться с задержками в обновлениях данных?
  • Использование инкрементальных загрузок, эффективной партиционировки по дате и предагрегатов. Важна стратегия «late-arrival handling» для корректировки данных в случае задержек и изменений прошлых транзакций.

 

  1. Какие еще метрики часто дополняют суммарный объем?
  • Средняя цена за единицу, доля продаж по каналам, оборот по сегментам клиентов, количество уникальных клиентов в периоде и частота повторных покупок. Эти метрики дополняют карту ценности клиента и помогают в стратегическом планировании.

 

  1. Как обеспечить воспроизводимость расчетов в будущем?
  • Фиксировать параметры периодов, версию бизнес-правил, версии моделей и миграции схем DW. Использовать контроль версий для моделей и тесты регрессии при изменениях в данных источников и алгоритмах агрегации.

 

  1. Что делать при изменении источников или бизнес-правил?
  • Вести регламент изменений: документировать влияние на расчеты, обновлять ETL/ELT пайплайны, тестировать новые правила на ретроспективных датасетах и расширять предагрегаты для новых сценариев. Важно отделить изменение бизнес-правил от существующей аналитики, чтобы не сломать текущую отчетность.

 

← Предыдущая статья
Анализ оттока клиентов - выявление клиентов которые прекратили совершать покупки
Следующая статья →
Расчет lifetime value клиента - определение полной финансовой ценности клиента

 

Узнать стоимость решенияЗапросить видео презентацию

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ООО "Интернэшнл Ресторант Брэндс" – это крупнейший франчайзинговый партнер компании Yum! Brands Russia & CIS в России, отвечающий за рост и развитие бренда KFC на территории РФ. На сегодняшний день у компании более 350 ресторанов. Ежедневно в рестораны приходит 200 000+ гостей.

  • Русклимат
    Русклимат — международный торгово-производственный холдинг, концентрирующий опыт ведущих мировых производителей индустрии климата, мощный потенциал конструкторских бюро и лабораторий индустриального дизайна.
     
    Компания образована в 1996 году. За более чем двадцатилетнюю историю Русклимат прошел путь от локальной компании до мощной вертикально-интегрированной многопрофильной структуры.
     
  • Ситилинк

    Электронный дискаунтер «Ситилинк» — один из крупнейших онлайн‑ритейлеров России (3‑е место по объему онлайн‑продаж в рейтинге Data Insight и Ruward 2016 года E‑commerce Index TOP‑100, 8 место в рейтинге Forbes «20 самых дорогих компаний Рунета — 2017»). На рынке работает 9 лет.

    В ассортименте дискаунтера более 50 000 наименований компьютерной цифровой, бытовой и садовой техники, офисной мебели и других товарных категорий. Более 700 мировых брендов в портфеле. Около 4 000 сотрудников по всей России

  • ПАО «Ростелеком» — российский провайдер цифровых услуг и сервисов. Предоставляет услуги широкополосного доступа в Интернет, интерактивного телевидения, сотовой связи, местной и дальней телефонной связи и др. Занимает лидирующие позиции на российском рынке высокоскоростного доступа в интернет, платного ТВ, хранения и обработки данных, а также кибербезопасности

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.