// *********************************************************************** // // 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 furniture variants associated with a base furniture model. /// public interface IFurnitureVariantProvider { /// /// Creates a new FurnitureVariant entity. /// /// The DTO representing the furniture variant. /// Cancellation token. /// The created . ValueTask CreateAsync(FurnitureVariantRequest newVariant, CancellationToken cancellationToken); /// /// Gets a furniture variant entity by its ID. /// /// The unique identifier (_id) of the furniture variant. /// Cancellation token. /// The corresponding . ValueTask GetByIdAsync(string _id, CancellationToken cancellationToken); /// /// Retrieves all furniture variants by a list of variant IDs. /// /// Array of variant IDs. /// Cancellation token. /// A list of matching the specified IDs. ValueTask> GetAllByIdsAsync(string[] ids, CancellationToken cancellationToken); /// /// Retrieves all furniture variants associated with a base model. /// /// The ID of the base furniture model. /// Cancellation token. /// A list of . ValueTask> GetAllByModelIdAsync(string modelId, CancellationToken cancellationToken); /// /// Updates an existing furniture variant by ID. /// /// The variant identifier. /// The updated entity data. /// Cancellation token. /// The updated . ValueTask UpdateAsync(string id, FurnitureVariant entity, CancellationToken cancellationToken); /// /// Changes the status of a furniture variant entity. /// /// The entity identifier. /// The new status to apply. /// Cancellation token. /// The updated . ValueTask ChangeStatusAsync(string _id, StatusEnum newStatus, CancellationToken cancellationToken); /// /// Retrieves all furniture variant entities. /// /// Cancellation token. /// A list of all entities. ValueTask> GetAllAsync(CancellationToken cancellationToken); } }