leafittome/lib/features/today/domain/due_task.dart
cschlaefke 778b3bd34d V2.2: Besitzer-Konzept, Haushalte umbenennen, Austreten/Entfernen, Checkliste über alle Haushalte
- ownerUid je Haushalt (Alt-Haushalte: erster memberUids-Eintrag = Ersteller);
  Besitzer-Anzeige in Mitglieder- und Haushaltsliste
- Haushalt umbenennen (Dialog im Haushalts-Screen); Rules erlauben Clients am
  Haushalts-Dokument nur noch das Namensfeld
- Cloud Functions leaveHousehold (selbst austreten, auch als Sitter) und
  removeMember (nur Besitzer); beide biegen den aktiven Zeiger des Betroffenen
  um und legen notfalls einen frischen eigenen Haushalt an
- Haushalts-Wechsler im Drawer (PopupMenu, ab zwei Haushalten)
- Tages-Checkliste und nächste Fälligkeit aggregieren über alle Haushalte,
  mit Zwischenüberschrift je Haushalt; Bestätigen schreibt in den
  Herkunfts-Haushalt der Aufgabe
- Widget-Tests: Gruppierung, Besitzer-Rechte, Umbenennen

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 21:39:10 +02:00

32 lines
919 B
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/foundation.dart';
import '../../plants/domain/plant.dart';
enum CareTaskType { watering, fertilizing }
/// Eine heute fällige (oder überfällige) Pflegeaufgabe.
///
/// Aufgaben werden nicht gespeichert, sondern aus den Pflanzen berechnet:
/// Fälligkeit = letzte Erledigung + Intervall (Intervall-Modell).
@immutable
class DueTask {
const DueTask({
required this.plant,
required this.type,
required this.dueDate,
required this.householdId,
required this.householdName,
});
final Plant plant;
final CareTaskType type;
final DateTime dueDate;
/// Aus welchem Haushalt die Aufgabe stammt die Checkliste sammelt
/// Aufgaben aus allen Haushalten des Nutzers.
final String householdId;
final String householdName;
/// 0 = heute fällig, 1 = seit gestern überfällig, usw.
int overdueDays(DateTime today) => today.difference(dueDate).inDays;
}