import 'package:krow_domain/krow_domain.dart';

/// User session data for the home page.
class UserSessionData {

  /// Creates a [UserSessionData].
  const UserSessionData({
    required this.businessName,
    this.photoUrl,
  });
  /// The business name of the logged-in user.
  final String businessName;

  /// The photo URL of the logged-in user (optional).
  final String? photoUrl;
}

/// Interface for the Client Home repository.
///
/// This repository is responsible for providing data required for the
/// client home screen dashboard.
abstract interface class HomeRepositoryInterface {
  /// Fetches the [HomeDashboardData] containing aggregated dashboard metrics.
  Future<HomeDashboardData> getDashboardData();

  /// Fetches the user's session data (business name and photo).
  UserSessionData getUserSessionData();

  /// Fetches recently completed shift roles for reorder suggestions.
  Future<List<ReorderItem>> getRecentReorders();
}
