// ***********************************************************************
//
// Core.Inventory
//
// ***********************************************************************
using Core.Adapters.Lib;
using Core.Blueprint.Mongo;
using Core.Inventory.Domain.Contexts.Inventory.Request;
namespace Core.Inventory.Provider.Contracts
{
///
/// Interface for managing base furniture models.
///
public interface IFurnitureBaseProvider
{
///
/// Creates a new FurnitureBase entity.
///
/// The DTO representing the furniture base.
/// Cancellation token.
/// The created .
ValueTask CreateAsync(FurnitureBaseRequest newFurniture, CancellationToken cancellationToken);
///
/// Gets a furniture base entity by its ID.
///
/// The unique identifier (_id) of the furniture base.
/// Cancellation token.
/// The corresponding .
ValueTask GetByIdAsync(string id, CancellationToken cancellationToken);
///
/// Retrieves all furniture base entries.
///
/// Cancellation token.
/// A list of .
ValueTask> GetAllAsync(CancellationToken cancellationToken);
///
/// Updates an existing furniture base by ID.
///
/// The furniture base identifier.
/// The updated entity data.
/// Cancellation token.
/// The updated .
ValueTask UpdateAsync(string id, FurnitureBase entity, CancellationToken cancellationToken);
///
/// Changes the status of a furniture base entity.
///
/// The entity identifier.
/// The new status to apply.
/// Cancellation token.
/// The updated .
ValueTask ChangeStatusAsync(string id, StatusEnum newStatus, CancellationToken cancellationToken);
}
}