using Domains;
namespace Infrastructure.Database.Generic
{
    /// Writes data to data storage
    ///  should be used to save changes
    public interface IGenericWriter
    {
        /// Add entity to data storage
        /// Entity to add
        /// Cancellation Token
        /// Entity type
        Task AddAsync(T entity, CancellationToken cancellationToken) where T : class, IEntity;
        /// Update entity in data storage
        /// Entity to update
        /// Entity type
        void Update(T entity) where T : class, IEntity;
        /// Remove entity from data storage
        /// Entity to remove
        /// Entity type
        void Remove(T entity) where T : class, IEntity;
    }
}