namespace UtopiaCanteenSystem.Services; /// /// Navigates between main views (AdminLogin, Scanner, Dashboard, Settings). /// public interface INavigationService { /// Current view model to display in the main content area. object? CurrentViewModel { get; } /// Raised when CurrentViewModel changes. event EventHandler? CurrentViewModelChanged; void NavigateToAdminLogin(); void NavigateToScanner(); void NavigateToDashboard(); void NavigateToAdminSettingsAuth(); void NavigateToSettings(); /// Starts a new dashboard session (used after scan). void StartDashboardSession(); /// Returns true when the dashboard session is expired for the given timeout. bool IsDashboardSessionExpired(TimeSpan timeout); /// Navigates back from Settings based on dashboard session expiry. void NavigateBackFromSettings(TimeSpan timeout); /// Returns elapsed time since dashboard session start. TimeSpan GetDashboardSessionElapsed(); }