using OwnChar.Model; namespace OwnChar.Data; public interface IDataProvider { bool IsInitialized(); void SetInitialized(); bool SaveDatabase(); // Model T? Create() where T : OwnCharObject; bool Save(T obj) where T : OwnCharObject; bool Delete(T obj) where T : OwnCharObject; IQueryable? GetAll() where T : OwnCharObject; // Hierarchy bool SetChild(OwnCharObject parent, OwnCharObject? child, string property, DataProviderSetAction action); T? GetChild(OwnCharObject parent, string property) where T : OwnCharObject; IQueryable? GetChilds(OwnCharObject parent, string property) where T : OwnCharObject; T? GetParent(OwnCharObject child, string property) where T : OwnCharObject; // Explicite getters UserAccount? GetUserAccount(string username, string password); UserProfile? GetUserProfile(string username); }