using ApplicationLayer.GeneralNeededServices;
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;
}