import 'package:dartz/dartz.dart';
import '../../../../core/errors/failures.dart';
import '../entities/warehouse_entity.dart';

/// Abstract repository interface for warehouse operations
/// Defines the contract for warehouse data operations
/// Implementations should handle data sources and convert exceptions to failures
abstract class WarehouseRepository {
  /// Get all warehouses from the remote data source
  ///
  /// Returns [Either<Failure, List<WarehouseEntity>>]
  /// - Right: List of warehouses on success
  /// - Left: Failure object with error details
  Future<Either<Failure, List<WarehouseEntity>>> getWarehouses();
}
