using Govor.Domain.Common; using Govor.Domain.Models; using Govor.Domain.Models.Users; namespace Govor.Application.Groups; public interface IGroupService { Task GetGroupByIdAsync(Guid groupId); Task CreateGroupAsync(string name, Guid creatorId, IEnumerable initialMemberIds); Task AddUserToGroupByInvitationAsync(Guid userId, string invitationCode); Task RemoveUserFromGroupAsync(Guid groupId, Guid userId, Guid removedByUserId); Task DeleteGroupAsync(Guid groupId, Guid userId); Task> GetGroupMembersAsync(Guid groupId); Task>GetUserGroupsAsync(Guid userId); ChatGroup GetGroupByInviteCode(string code); }