Mikhail Chusavitin c47c93ab31 fix: потоковая отправка прогресса создания прайслиста и исправление маппинга колонки категории
Две ключевые исправления:

1. Потоковая отправка прогресса создания (SSE):
   - Эндпоинт CreateWithProgress теперь отправляет Server-Sent Events
     вместо возврата JSON с task_id
   - Полирует статус задачи и отправляет обновления прогресса в реальном времени
   - Отправляет финальное событие с данными прайслиста или ошибкой
   - Фронтенд уже ожидал этого формата SSE

2. Исправление маппинга колонки lot_category:
   - Добавлен явный тег column в поле Category модели PricelistItem
     чтобы маппиться на колонку 'lot_category' в БД
   - Категория теперь хранится как снимок в таблице pricelist_items
   - Обновлены запросы репозитория для использования сохраненной
     категории вместо динамических JOIN с таблицей lot

Это исправляет ошибки:
- "Создание прервано: не получен результат" (фронтенд ожидал streaming)
- "Unknown column 'category' in 'INSERT INTO'" (несоответствие схемы БД)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-10 15:17:16 +03:00
2026-02-08 08:57:52 +03:00
2026-02-07 21:42:26 +03:00
2026-02-07 21:42:26 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00

PriceForge

PriceForge — администратор цен и прайслистов для работы с данными MariaDB.

Текущее состояние проекта:

  • Runtime: MariaDB-only
  • Режим запуска: fail-fast (если БД недоступна на старте, сервер завершается)
  • Основной интерфейс: /admin/pricing
  • Порт по умолчанию: 8084

Возможности

  • Администрирование цен компонентов
  • Управление прайслистами (Estimate / Склад / Конкуренты)
  • Импорт складских данных
  • Алерты по ценам и свежести данных
  • Диагностика подключения к БД в UI (online/offline индикатор)

Требования

  • Go 1.22+
  • MariaDB / MySQL с доступом к рабочей базе (например RFQ_LOG)

Быстрый старт

  1. Подготовить конфиг:
cp config.example.yaml config.yaml
  1. Проверить параметры в config.yaml:
  • server.port (по умолчанию 8084)
  • database.host
  • database.port
  • database.name
  • database.user
  • database.password
  1. Запустить сервер:
make run

или

go run ./cmd/pfs
  1. Открыть:

Миграции

Запуск миграций:

go run ./cmd/pfs -migrate

При обычном запуске SQL-миграции из migrations/ также проверяются автоматически.

Сборка

make build
make build-release
make build-all

Проверка версии:

./bin/pfs -version

Release-артефакты

Скрипт сборки релиза:

./scripts/release.sh

Он создает архивы в releases/<version>/ и файл SHA256SUMS.txt.

Запуск на macOS

После скачивания бинарника может сработать Gatekeeper. Выполните:

xattr -d com.apple.quarantine /path/to/pfs-darwin-arm64

После этого бинарник запустится без предупреждения Gatekeeper.

Основные команды Makefile

make run           # запуск dev-сервера
make build         # локальная сборка
make build-release # релизная сборка
make build-all     # кросс-компиляция для Linux/macOS/Windows
make test          # тесты
make clean         # очистка артефактов

Важно

Проект сейчас не использует SQLite в runtime-потоке сервера pfs. Все ключевые операции выполняются напрямую через MariaDB.

Description
No description provided
Readme 261 MiB
Languages
Go 47.2%
CSS 24.7%
JavaScript 16.2%
HTML 11.5%
Makefile 0.2%
Other 0.2%