feat(notifications): day sheet notification types

Add daySheetId field to NotificationItem model (Brick-managed), extract
notificationTitle/notificationIcon to top-level testable functions, add
five day-sheet notification cases, and wire tap/banner routing for
day-sheet detail and approvals tab.
Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
2026-09-28 14:54:19 +08:00
parent 54ce528b02
commit 5af0ce62d9
8 changed files with 219 additions and 38 deletions
+4
View File
@@ -19,6 +19,8 @@ class NotificationItem extends OfflineFirstWithSupabaseModel {
final String? itServiceRequestId;
final String? announcementId;
final int? messageId;
@Sqlite(name: 'day_sheet_id')
final String? daySheetId;
final String type;
final DateTime createdAt;
final DateTime? readAt;
@@ -38,6 +40,7 @@ class NotificationItem extends OfflineFirstWithSupabaseModel {
required this.itServiceRequestId,
this.announcementId,
required this.messageId,
this.daySheetId,
required this.type,
required this.createdAt,
required this.readAt,
@@ -55,6 +58,7 @@ class NotificationItem extends OfflineFirstWithSupabaseModel {
itServiceRequestId: map['it_service_request_id'] as String?,
announcementId: map['announcement_id'] as String?,
messageId: map['message_id'] as int?,
daySheetId: map['day_sheet_id'] as String?,
type: map['type'] as String? ?? 'mention',
createdAt: AppTime.parse(map['created_at'] as String),
readAt: map['read_at'] == null