This update implements a comprehensive solution to prevent duplicate notifications when Telegram messages are edited, while maintaining a full history of changes. Features: - New TextMatch entity to store match history with versioning - Database migration for TextMatches table with proper indexes - TextMatchRepository for managing match records - TextSubscriptionUpdated event for message update notifications - Enhanced MessageReceivedHandler with deduplication logic: * First match creates version 1 and publishes TextSubscriptionMatched * Subsequent updates create new versions and publish TextSubscriptionUpdated * Skips notifications if message text hasn't changed Technical details: - MessageId changed from int to long to match Telegram API types - Proper indexes on (MessageId, SubscriptionId) and UserId - Full audit trail of message edits in database 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Migrations | ||
| AddMigration.sh | ||
| appsettings.json | ||
| DesignTimeTextMatcherContextFactory.cs | ||
| Dockerfile | ||
| Nocr.TextMatcher.Migrator.csproj | ||
| Program.cs | ||
| Readme.md | ||
Nocr.TextMatcher.Migrator
Проект содержит консольное приложение для применения миграций к БД.
Для выбора строки подключения при запуске необходимо передать переменную окружения DOTNET_ENVIRONMENT. Для локальной разработки следует использовать DOTNET_ENVIRONMENT=Development.
Добавление миграций
В приложении реализована логика выбора строки подключения, а dotnet ef не позволяет передать переменную окружения. Поэтому был создан скрипт AddMigration, который устанавливает значение DOTNET_ENVIRONMENT=Development.
Пример использования: ./AddMigration MyMigration