using ErrorOr; using Microsoft.EntityFrameworkCore; using Musify.Domain.Entities; namespace Musify.Application.Contracts; public interface IDatabase { public DbSet Users { get; } public DbSet PlayLists { get; } public DbSet Albums { get; } public DbSet AlbumHasTracks { get; } public DbSet Tracks { get; } public DbSet PlayListHasTracks { get; } public DbSet Mixes { get; } public DbSet MixItems { get; } public DbSet UploadIntents { get; } public DbSet ListeningHistories { get; } public DbSet TrackLikes { get; } public DbSet TrackTags { get; } public DbSet UserFollows { get; } public Task BeginTransactionAsync(System.Data.IsolationLevel isolationLevel, CancellationToken cancellationToken); public Task SaveChangesAsync(CancellationToken cancellationToken); public Task> TrySaveChangesAsync(Error onUniqueViolation, CancellationToken cancellationToken); }