Notification parsing: - Per-app parse rules (parse_rules.packageName; getEnabledForApp, NULL = legacy global) - Transfer pairing: transfer_pair_matcher + transfer_pairing_blocklist table/dao/repo - source_apps.selfMerchant flag (Ozon inbox rework: default account picker, suppress AI category prefill + rule suggestion) - raw_messages.diagnostics dump captured under diagnostic-mode toggle - Inbox card / settings / log UI reworks Onboarding: - Two-step flow (name -> first account); UserSeeder seeds categories only, no accounts Schema bumped to v11; drop obsolete migration + mixed-merchant tests, add new coverage. Add ios/ platform folder. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
63 lines
1.9 KiB
Dart
63 lines
1.9 KiB
Dart
/// Enums for the notification-parsing feature.
|
|
/// Drift converters are defined in the data layer; these are pure-Dart.
|
|
library;
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// RawMessageStatus
|
|
// ---------------------------------------------------------------------------
|
|
enum RawMessageStatus {
|
|
pending,
|
|
parsing,
|
|
parsed,
|
|
parsedPartial,
|
|
pendingAi,
|
|
inbox,
|
|
applied,
|
|
ignored,
|
|
failed,
|
|
|
|
/// Распарсенная transfer-половинка скрыто ждёт вторую половинку пары
|
|
/// (окно до `pairDeadline`); по таймауту уходит в Inbox одиночкой.
|
|
waitingPair,
|
|
|
|
/// Вторичная половинка склеенного перевода: скрыта из Inbox, в журнале
|
|
/// показывается как «объединено в перевод».
|
|
paired,
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// ParseRuleKind
|
|
// ---------------------------------------------------------------------------
|
|
enum ParseRuleKind {
|
|
merchantToCategory,
|
|
senderToAccount,
|
|
ignore,
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// MatchMode
|
|
// ---------------------------------------------------------------------------
|
|
enum MatchMode {
|
|
contains,
|
|
exact,
|
|
regex,
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// TxKind — granular kind extracted from notification text
|
|
// ---------------------------------------------------------------------------
|
|
enum TxKind {
|
|
purchase,
|
|
refund,
|
|
transferOut,
|
|
transferIn,
|
|
fee,
|
|
balance,
|
|
other,
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// ParseSource — which stage of the pipeline produced the draft
|
|
// ---------------------------------------------------------------------------
|
|
enum ParseSource { regex, ai }
|