import 'package:krow_core/core.dart';
import '../repositories/auth_repository_interface.dart';

/// Use case for signing out the current client user.
///
/// This use case handles the termination of the user's session and
/// clearing of any local authentication tokens.
class SignOutUseCase implements NoInputUseCase<void> {
  final AuthRepositoryInterface _repository;

  const SignOutUseCase(this._repository);

  /// Executes the sign-out operation.
  @override
  Future<void> call() {
    return _repository.signOut();
  }
}
