Commit Graph

5 Commits

Author SHA1 Message Date
Mikhail Kilin
0ca3da54e7 refactor: extract message grouping logic (P3.9)
- Create src/message_grouping.rs module (255 lines)
- Add MessageGroup enum (DateSeparator, SenderHeader, Message)
- Add group_messages() function for date/sender grouping
- Write 5 unit tests (all passing)
- Add full rustdoc documentation with examples
- Update REFACTORING_ROADMAP.md (Priority 3: 3/4 tasks, 75%)
- Update CONTEXT.md with refactoring progress
- Overall refactoring progress: 11/17 tasks (65%)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 23:30:41 +03:00
Mikhail Kilin
644e36597d fixes 2026-01-31 03:48:50 +03:00
Mikhail Kilin
7081a886ad refactor: implement newtype pattern for IDs (P2.4)
Добавлены типобезопасные обёртки ChatId, MessageId, UserId для предотвращения
смешивания разных типов идентификаторов на этапе компиляции.

Изменения:
- Создан src/types.rs с тремя newtype структурами
- Реализованы методы: new(), as_i64(), From<i64>, Display
- Добавлены traits: Hash, Eq, Serialize, Deserialize
- Обновлены 15+ модулей для использования новых типов:
  * tdlib: types.rs, chats.rs, messages.rs, users.rs, reactions.rs, client.rs
  * app: mod.rs, chat_state.rs
  * input: main_input.rs
  * tests: app_builder.rs, test_data.rs
- Исправлены 53 ошибки компиляции связанные с type conversions

Преимущества:
- Компилятор предотвращает смешивание разных типов ID
- Улучшенная читаемость кода (явные типы вместо i64)
- Самодокументирующиеся типы

Статус: Priority 2 теперь 60% (3/5 задач)
-  Error enum
-  Config validation
-  Newtype для ID
-  MessageInfo реструктуризация
-  MessageBuilder pattern

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 01:33:18 +03:00
Mikhail Kilin
a4cf6bac72 fixes 2026-01-30 16:18:16 +03:00
Mikhail Kilin
68a2b7a982 fixes 2026-01-28 11:39:21 +03:00