- 7 failing tests for watchAllTasksWithRoomName and watchCompletionsToday
- DAO stub with UnimplementedError methods registered in AppDatabase
- TaskWithRoom and DailyPlanState model classes defined
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
flutter_reorderable_grid_view requires String keys, not int. Also
adds safe area top padding so the room grid doesn't overlap the
system status bar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- After createRoom, detect room type via detectRoomType on room name
- Show TemplatePickerSheet if room type matches one of 14 known types
- Create tasks from selected templates with correct frequency, effort, and anchor day
- Navigate to new room after creation (with or without templates)
- Edit mode unchanged: no template prompt on room updates
- Custom rooms (no type match) skip template prompt entirely
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add TemplatePickerSheet StatefulWidget with checklist UI for task templates
- Add showTemplatePickerSheet helper for modal display with DraggableScrollableSheet
- Add 4 German localization keys: templatePickerTitle, Skip, Add, Selected count
- All templates unchecked by default, confirm button only enabled with selection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- TaskListScreen with room name in AppBar, edit/delete room actions
- AsyncValue.when for loading/error/data states with empty state
- TaskRow with leading checkbox, name, German relative due date, frequency label
- Overdue dates highlighted in warm coral (0xFFE07A5F)
- Checkbox marks done immediately (optimistic UI, no undo)
- Row tap navigates to edit form, long-press shows delete confirmation
- FAB for creating new tasks
- ListView.builder for task list sorted by due date
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- TaskActions AsyncNotifier for create, update, delete, complete task mutations
- tasksInRoomProvider manual StreamProvider.family wrapping TasksDao.watchTasksInRoom
- TaskFormScreen with name, frequency (10 presets + custom), effort (3-way segmented),
description, and initial due date picker (German DD.MM.YYYY format)
- Custom frequency: number + unit picker (Tage/Wochen/Monate)
- Calendar-anchored intervals auto-set anchorDay from due date
- Edit mode loads existing task and pre-fills all fields
- 19 new German localization keys for task form, delete, and empty state
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace placeholder RoomsScreen with ConsumerWidget watching roomWithStatsProvider
- Create RoomCard with icon, name, due count badge, cleanliness progress bar
- 2-column ReorderableBuilder grid with drag-and-drop reorder
- Empty state, loading, error states with retry
- Long-press menu for edit/delete with confirmation dialog
- FAB for room creation navigation
- Update app_shell_test with provider override for rooms stream
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create TaskTemplate class with name, intervalType, intervalDays, effortLevel
- Add roomTemplates const map with 3-6 templates per room type (14 total)
- Implement detectRoomType with case-insensitive matching and alias support
- Room types: kueche, badezimmer, schlafzimmer, wohnzimmer, flur, buero,
garage, balkon, waschkueche, keller, kinderzimmer, gaestezimmer, esszimmer, garten
- All 11 template tests passing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- GoRouter with StatefulShellRoute.indexedStack and 3 branches (Home, Rooms, Settings)
- AppShell with NavigationBar using localized labels and thematic icons
- HomeScreen with empty state and cross-navigation to Rooms tab
- RoomsScreen with empty state and placeholder action button
- SettingsScreen with SegmentedButton theme switcher and About section
- Widget test verifying 3 navigation destinations with correct German labels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>