using LctMonolith.Database.Repositories; using LctMonolith.Models.Database; using EventLog = LctMonolith.Models.Database.EventLog; namespace LctMonolith.Database.UnitOfWork; /// /// Unit of Work aggregates repositories and transaction boundary. /// public interface IUnitOfWork { IGenericRepository Users { get; } IGenericRepository Players { get; } IGenericRepository MissionCategories { get; } // added IGenericRepository Ranks { get; } IGenericRepository RankMissionRules { get; } IGenericRepository RankSkillRules { get; } IGenericRepository Missions { get; } IGenericRepository PlayerMissions { get; } IGenericRepository MissionSkillRewards { get; } IGenericRepository Skills { get; } IGenericRepository PlayerSkills { get; } IGenericRepository StoreItems { get; } IGenericRepository UserInventoryItems { get; } IGenericRepository Transactions { get; } IGenericRepository EventLogs { get; } IGenericRepository RefreshTokens { get; } IGenericRepository Notifications { get; } IGenericRepository MissionItemRewards { get; } // added IGenericRepository MissionRankRules { get; } // added IGenericRepository Dialogues { get; } IGenericRepository DialogueMessages { get; } IGenericRepository DialogueMessageResponseOptions { get; } IGenericRepository Profiles { get; } Task SaveChangesAsync(CancellationToken ct = default); Task BeginTransactionAsync(CancellationToken ct = default); Task CommitAsync(CancellationToken ct = default); Task RollbackAsync(CancellationToken ct = default); }