using Bit.Core.Entities; using Bit.Core.Models.Data; namespace Bit.Core.Repositories; public interface ICollectionRepository : IRepository { Task GetCountByOrganizationIdAsync(Guid organizationId); Task> GetByIdWithAccessAsync(Guid id); Task> GetByIdWithAccessAsync(Guid id, Guid userId); Task> GetManyByOrganizationIdAsync(Guid organizationId); Task>> GetManyByOrganizationIdWithAccessAsync(Guid organizationId); Task>> GetManyByUserIdWithAccessAsync(Guid userId, Guid organizationId); Task GetByIdAsync(Guid id, Guid userId); Task> GetManyByManyIdsAsync(IEnumerable collectionIds); Task> GetManyByUserIdAsync(Guid userId); Task CreateAsync(Collection obj, IEnumerable groups, IEnumerable users); Task ReplaceAsync(Collection obj, IEnumerable groups, IEnumerable users); Task DeleteUserAsync(Guid collectionId, Guid organizationUserId); Task UpdateUsersAsync(Guid id, IEnumerable users); Task> GetManyUsersByIdAsync(Guid id); Task DeleteManyAsync(IEnumerable collectionIds); Task CreateOrUpdateAccessForManyAsync(Guid organizationId, IEnumerable collectionIds, IEnumerable users, IEnumerable groups); }