using BuildingBlock.Catalog.Contracts.Grpc;
using BuildingBlock.Catalog.Contracts.Products;
using BuildingBlock.Catalog.Contracts.Responses;
namespace BuildingBlock.Catalog.Contracts.Adapters;
///
/// Defines adapter boundary for catalog gRPC contract translation.
///
public interface ICatalogGrpcContractAdapter
{
///
/// Maps transport-neutral product contract into gRPC shape.
///
/// Transport-neutral product contract.
/// gRPC product contract shape.
CatalogProductGrpcContract ToGrpcProduct(ProductContract contract);
///
/// Maps gRPC product contract into transport-neutral response.
///
/// gRPC product contract shape.
/// Transport-neutral product response contract.
ProductContractResponse FromGrpcProduct(CatalogProductGrpcContract contract);
}