
namespace XGame.Framework.Database
{
    public interface IDatabaseModule
    {
        TTable GetByKey<TTable, TRepository>(long key) where TTable : class, ITable where TRepository : TableRepository<TTable, TRepository>;
        TTable[] GetAll<TTable, TRepository>() where TTable : class, ITable where TRepository : TableRepository<TTable, TRepository>;
        IDatabaseAsync<TTable> LoadAsync<TTable, TRepository>(string tableName) where TTable : class, ITable where TRepository : TableRepository<TTable, TRepository>;
        void Unload(string tableName);
    }
}
