using Furniture.DAL.Contracts;
using Furniture.DAL.Grpc;
namespace Furniture.DAL.Adapters;
///
/// Defines adapter boundary for furniture dal gRPC contract translation.
///
public interface IFurnitureDalGrpcContractAdapter
{
///
/// Maps transport-neutral availability lookup request to gRPC contract shape.
///
/// Furniture availability lookup request contract.
/// gRPC availability request contract.
FurnitureAvailabilityDalGrpcContract ToGrpcAvailabilityRequest(FurnitureAvailabilityLookupRequest request);
///
/// Maps gRPC availability contract shape to transport-neutral request.
///
/// gRPC availability request contract.
/// Furniture availability lookup request contract.
FurnitureAvailabilityLookupRequest FromGrpcAvailabilityRequest(FurnitureAvailabilityDalGrpcContract contract);
///
/// Maps transport-neutral catalog lookup request to gRPC contract shape.
///
/// Catalog product lookup request contract.
/// gRPC catalog request contract.
CatalogProductDalGrpcContract ToGrpcCatalogRequest(CatalogProductLookupRequest request);
///
/// Maps gRPC catalog contract shape to transport-neutral request.
///
/// gRPC catalog request contract.
/// Catalog product lookup request contract.
CatalogProductLookupRequest FromGrpcCatalogRequest(CatalogProductDalGrpcContract contract);
}