part of '../category.dart';

abstract class ICategoryRepository {
  Future<Either<CategoryFailure, ListCategory>> getCategories({
    int page = 1,
    int limit = 10,
    bool isActive = true,
    String? search,
    bool forceRemote = false,
  });

  Future<Either<CategoryFailure, Category>> getCategoryById(String id);

  Future<Either<CategoryFailure, String>> syncAllCategories();

  Future<Either<CategoryFailure, ListCategory>> refreshCategories({
    bool isActive = true,
    String? search,
  });

  Future<bool> hasLocalCategories();

  Future<Either<CategoryFailure, Map<String, dynamic>>> getDatabaseStats();

  void clearCache();

  Future<void> clearAllCategories();
}
