Skip to content

AlmasNurbayev/go_cipo_bot

Repository files navigation

GO_CIPO_BOT

Суть - хранилище данных продаж / остатков товара / финансовых итогов магазина Cipo. Интерфейс пользователя реализуется через telegram-бот.

Источники данных / API

  • продажи и аналитика продаж - чеки с API ОФД, недокументированный RestAPI
  • остатки товаров - бэкенд сайта Cipo, который их получает из 1С Розница, типовой обмен с сайтом в CommerceML
  • отчет о доходох и расходах - API Google Sheets, таблица с расходами, себестоимостью

Основные сервисы

  • Postgres в стандартном контейнере
  • KOFD_UPDATER - парсер данных с внешнего API KOFD и сохранение в БД
  • BOT - интерфейс для доступа к данным в виде телеграм-бота
  • Nats - брокер сообщений в стандартном контейнере, между KOFD_UPDATER и BOT

Пакеты планируемые для использования

  • [go-telegram] (github.com/go-telegram/bot)
  • pgx / pgxpool / scany
  • github.com/go-analyze/charts
  • github.com/golang-migrate/migrate

TODO

  • parserJSON - добавить загрузку закупочных цен, также добавить из 1С

  • обновить экшны - actions/checkout@v6, docker/build-push-action@v7, docker/login-action@v4, docker/setup-buildx-action@v4, golangci/golangci-lint-action@v9

  • [v] 2026-01-20 - в блоке "Charts" сделать кнопку "12m" чтобы на 12 месяцев назад выводить итоги, блоками по 2 колонки (январь 2026 и январь 2025, февраль 2026 и февраль 2025 и т.д.)

  • 2026-01-19 - в блоке "Остатки" сделать кнопку "Диаграмма" чтобы выводить гистограмму с суммами остатков каждый месяц (всего 12 колонок для 12 месяцев), внутри разделить по сезонам

  • 2026-01-02 - сделать бинарник webkassa_updater для загрузки транзакций из Вебкассы. Использовать метод для авторизации - POST https://my.webkassa.kz/api/authorize/spa/email Использовать метод для получения смен - GET https://my.webkassa.kz/api-history/v3/Reports/HistoryCheckShiftGrid?cashboxId=426032&skip=0&take=20 Использовать метод для получения данных чека - POST https://my.webkassa.kz/api/v4/Check/HistoryByNumber Для методов после авторизации требуются 1 кука с AccessToken

  • [v] 2025-10-19 - summary - в аналитику добавить процент возвратов

  • 2025-10-16 - финансы - диаграмма - вывести четкий ноль и значения в разные стороны

  • 2025-10-04 - финансы - добавить режим сравнения произвольных периодов

  • [v] 2025-05-14 получили токен, теперь надо получить операции

  • [v] 2025-05-15 записываем в БД транзакции полученные из КОФД, но нужно получить и записать в БД информацию из чека, названия, путь до картинки

  • [v] 2025-07-19 заменить пакет для telegram api на более документированный https://github.com/go-telegram/bot

  • [v] 2025-07-19 kofd_updater вставку операций делать обернуть в транзакцию Postrges, транзакцию создать в его main.go

  • [v] в GetGoodsFromCheque - отпарсить из чека не только имена, но и кол-во, цены

  • [v] поле cheque в БД поменять тип на JSON или связанную таблицу "Товары в транзакциях"

  • [v] 2027-07-24 - BOT - запросить URL-картинки по name_1c к бэкенду сайта. Открытый вопрос - хранить ли URL в базе данных, так как 1С может менять имя файла

  • [v] 2027-07-24 поле cheque в БД - также парсить секцию Скидки, добавить поля в cheque_json

  • [v] 2025-07-20 - BOT - вывод по кнопке "Все чеки" по итогам дня или недели

  • [v] 2025-07-26 - KOFD_updater - при каждом обновлении помещать новые операции в Кафку/RMQ

  • [v] 2025-07-26 - BOT - читать новые операции из Кафки/RMQ

  • [v] 2025-08-09 - BOT - выводить отдельные чеки с картинками

  • [v] 2025-08-09 - BOT - в GetPeriodByMode добавить вариант получения даты по шаблону "2025 08 21", для получения итогов по любому дню

  • [v] 2025-08-09 - KOFD_updater - заменить публикацию Kafka на Nats

  • [v] 2025-08-12 - BOT - заменить слушателя Kafka на Nats

  • [v] 2025-08-10 - если в сервисе getAllChecks сообщение превысит лимит в 4096 символа, то нужно разбить на части, а не отказывать. Но суммарно не более 50 чеков

  • [v] 2025-08-10 - добавить функцию по выводу типа оплаты и добавить в список всех чеков и в одиночный чек

  • [V] 2025-08-11 - деплой через github actions - сборка контейнера с бинарниками после линта, пуша тега

  • [V] 2025-08-11 - docker compose - закрыть клиентский порт для наружнего доступа

  • [V] 2025-08-11 - в Cron повесить запуск updater каждые 2 мин

  • [v] 2025-08-11 - создать в БД вторую уже закрытую кассу SWK00426370 - 010102360873 - Евразия

  • [v] 2025-08-11 - залить все чеки с 01.07.2021 по 4 кассам, апдейтером, кусками по 1-3 мес. Чтобы не создавать множественную нагрузку по запросам чеков.

  • [v] 2025-08-17 - добавить в итоги текущего дня остаток по кассе

  • [v] 2025-08-16 - диаграммы (использовать новый форк go-chart от https://github.com/go-analyze/charts)

  • [v] 2025-08-16 - финансы - сделано 2025-10-04

  • 2025-08-31 - подумать как сделать кнопку "Полный текст чека" для медиагруппы удобнее, сейчас приходится отправлять вторым сообщением

  • [v] разобрать сумму скидок в аналитике за 2025-09-04, скидки превысили сумму продаж

  • [v] 2025-10-04 - финансы - разобраться с шириной и высотой при разном кол-ве строк/колонок

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages