# Bonus-import-tools - Приложение для импорта бонусных баллов. После запуска, приложение опрашивает каждую минуту подкаталог CSV на наличие *.scv файлов соответствующих названий. - users-*.csv : для импорта покупателей - transaction-*.csv : для импорта транзакций бонусных баллов ## Правила заполнения входных CSV файлов - Кодировка файла : UTF-8 - Разделитель полей : , [Запятая] - Разделитель разрядов: . [Точка] - Номер телефона (Только Российские номера) = 12 символов в формате E164: +7XXXXXXXXXX [+76543210987] - Формат даты : YYYY-MM-DD [2002-03-11] - Формат времени : HH:MM:SS [21:05:36] - Гендер: M/F [M] - Первая строка - названия полей Значения не должны содержать специальных символов. ## Пример файла пользователей Название файла должно начинаться с "users-". Расширение файла : .csv Пример: users-example.csv ```csv nickname, full_name, card, phone, email, gender Ivan 1,Иван Петров ,654897321321,+78906543210, user@examplse.com, M Ivana,Ивана Иванова,654897321123,+78906233212, user2@examplse.com, F ``` ### Обязательные поля: nickname, card, phone ## Пример файла транзакций Название файла должно начинаться с "transaction-". Расширение файла : .csv Пример: transaction-example.csv Внимание : bonus_amount - целое число ! ```csv user_id, card, phone, summ_total, summ_discount, sum_with_discount, bonus_amount, transaction_date, transaction_time, doc_id 15689, 654897321321,+78906543210,12345.67,123.56,12222.11,121,2002-03-11,21:05:36,чек-100 6578, 654897321123,+78906233212,345.67,45.00,300.67,12,2002-03-12,01:05:36, ``` ### Обязательные поля: ```text user_id или card или phone, bonus_amount ``` ## Перед любым запуском настройте переменные окружения в .env ```shell cp .env.example .env ``` ```ini APP_TOKEN="1234567890" :Токен приложения - Запросите у технической поддержки POS_TOKEN="0987654321" :Токен кассы - Запросите у технической поддержки PRODUCTION=1 :Если не пусто - работает в PRODUCTION среде, иначе в тестовой CURRENCY='RUS' :Код страны COUNTRY='RU' :Код валюты транзакций DRY_RUN= :Если пусто - все транзакции проводятся, иначе - инсценируются, без проведения [НЕ РЕАЛИЗОВАНО] ``` ## Типы установки - через python VENV (для разработки) - через docker-compose (на сервере) - через Nuitka (TODO)(у стороннего клиента) ### Требования для установки через pipenv - Ubuntu 22.04 - Python 3.11 ### Предустановка ```shell apt update && apt upgrade -y apt install git wget curl build-essential mc tmux -y apt install libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev python3-pip python3-dev -y pip3 install setuptools && pip3 install pipenv ``` ### Установка в venv ```shell git clone https://git.auk.su/dinect-public/bonus-import-tools cd bonus-import-tools pip install -r requirements.txt ``` ### Требования для установки через docker-compose - Ubuntu 22.04 / alpine 3.14 - Docker - Docker compose 2.24 + ### Предустановка ```shell sudo apt update && sudo apt upgrade -y sudo apt install apt-transport-https ca-certificates curl software-properties-common tmux curl mc wget git -y curl -sSL https://get.docker.com/ | CHANNEL=stable bash docker --version sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version ``` ### Установка в Docker контейнер ```shell git clone https://git.auk.su/dinect-public/bonus-import-tools cd bonus-import-tools docker-compose up -d ``` ### Запуск exe (TODO) - Nuitka