using System.Threading.Tasks;
namespace RMC.Backend.Baas
{
///
/// Defines the API: This subsystem
///
public interface IDatabaseSubsystem : IInitializableAsync, IConfigurable
{
// Properties ------------------------------------
DatabaseEvent OnInitialized { get; }
DatabaseEvent OnTableRead { get; }
DatabaseEvent OnItemCreated { get; }
DatabaseEvent OnItemRead { get; }
DatabaseEvent OnItemUpdated { get; }
// General Methods ------------------------------
Task TableReadAsync(string tableName);
Task ItemReadAsync(Table table, User user, InventoryItem item);
Task ItemCreateAsync(Table table, User user, InventoryItem item);
Task ItemUpdateAsync(Table table, User user, InventoryItem item);
}
}