import '../../about/external/data/Commitment.dart'; import '../../about/external/data/ExcuseCluster.dart'; import '../../about/external/data/Group.dart'; import '../../about/external/data/ReportCard.dart'; import '../../about/external/data/RoutineChain.dart'; import '../../about/internal/application/Standing.dart'; import '../../about/internal/application/TodoItem.dart'; import '../../about/internal/application/UserDetails.dart'; abstract class ConnectHome { void onUserLoaded(UserDetails details); void onPlanLoaded(List plan); void onOverdueLoaded(List overdue); /// The routine library, for the up-next rail. void onRoutinesLoaded(List routines); /// This week's report card, for the streak row, the score and the weekly /// view. Null when it could not be loaded. void onWeekLoaded(ReportCard? week); /// Your groups, for the rail on Home. void onGroupsLoaded(List groups); /// The quick to-do list, read from the device. void onTodosLoaded(List todos); /// Standing arrives derived, with the debt it was derived from. void onStandingResolved(Standing standing, double debtScore); /// The one excuse pattern worth confronting the user with today. void onExcuseInsight(ExcuseCluster? cluster); /// Distress detected — the strict persona drops entirely. void onDistressDetected(); /// Creating a commitment is refused at this standing. void onCreationBlocked(String reason); /// A tick landed. [late] is true when the window had already closed, so the /// row can show it was recorded as a late complete rather than a clean one. void onTicked(Commitment item, bool late); /// The tick failed and the row has to go back to unchecked. void onTickFailed(Commitment item); }