using System.Threading.Tasks; using Bit.Core.Models.Business; using Bit.Core.Models.Table; using System; using System.Collections.Generic; using Bit.Core.Enums; namespace Bit.Core.Services { public interface IOrganizationService { Task GetBillingAsync(Organization organization); Task ReplacePaymentMethodAsync(Guid organizationId, string paymentToken); Task CancelSubscriptionAsync(Guid organizationId, bool endOfPeriod = false); Task ReinstateSubscriptionAsync(Guid organizationId); Task UpgradePlanAsync(Guid organizationId, PlanType plan, int additionalSeats); Task AdjustSeatsAsync(Guid organizationId, int seatAdjustment); Task> SignUpAsync(OrganizationSignup organizationSignup); Task InviteUserAsync(Guid organizationId, Guid invitingUserId, string email, Enums.OrganizationUserType type, IEnumerable subvaults); Task ResendInviteAsync(Guid organizationId, Guid invitingUserId, Guid organizationUserId); Task AcceptUserAsync(Guid organizationUserId, User user, string token); Task ConfirmUserAsync(Guid organizationId, Guid organizationUserId, string key, Guid confirmingUserId); Task SaveUserAsync(OrganizationUser user, Guid savingUserId, IEnumerable subvaults); Task DeleteUserAsync(Guid organizationId, Guid organizationUserId, Guid deletingUserId); } }