50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
using TelegramPanel.Core.Models;
|
|
|
|
namespace TelegramPanel.Core.Interfaces;
|
|
|
|
/// <summary>
|
|
/// 群组服务接口
|
|
/// </summary>
|
|
public interface IGroupService
|
|
{
|
|
/// <summary>
|
|
/// 获取账号创建的所有群组
|
|
/// </summary>
|
|
Task<List<GroupInfo>> GetOwnedGroupsAsync(int accountId);
|
|
|
|
/// <summary>
|
|
/// 创建群组(超级群组)
|
|
/// </summary>
|
|
Task<GroupInfo> CreateGroupAsync(int accountId, string title, string about, bool isPublic = false, string? username = null);
|
|
|
|
/// <summary>
|
|
/// 获取账号当前可见的全部群组(创建者/管理员/普通成员)
|
|
/// </summary>
|
|
Task<List<GroupInfo>> GetVisibleGroupsAsync(int accountId, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 获取群组详情
|
|
/// </summary>
|
|
Task<GroupInfo?> GetGroupInfoAsync(int accountId, long groupId);
|
|
|
|
/// <summary>
|
|
/// 退出群组。
|
|
/// </summary>
|
|
Task<bool> LeaveGroupAsync(int accountId, long groupId);
|
|
|
|
/// <summary>
|
|
/// 解散群组(超级群需要创建者权限;基础群暂不支持)。
|
|
/// </summary>
|
|
Task<bool> DisbandGroupAsync(int accountId, long groupId);
|
|
|
|
/// <summary>
|
|
/// 导出加入链接:公开群组返回 t.me 链接;否则导出邀请链接。
|
|
/// </summary>
|
|
Task<string> ExportJoinLinkAsync(int accountId, long groupId);
|
|
|
|
/// <summary>
|
|
/// 获取群组管理员列表(需要权限)
|
|
/// </summary>
|
|
Task<List<ChannelAdminInfo>> GetAdminsAsync(int accountId, long groupId);
|
|
}
|