Utopia-Canteen-System/Services/INavigationService.cs

34 lines
1.2 KiB
C#

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