修正命名错误
xiyunfei authored at 2023-04-09 21:10:58
1.71 KiB
NewLife.JT808
namespace Client.Avalonia.Services;

/// <summary>服务端管理 API 接口</summary>
public interface IServerApiService
{
    /// <summary>获取服务器统计</summary>
    Task<ServerStats?> GetStatsAsync();

    /// <summary>获取在线会话列表</summary>
    Task<SessionList?> GetSessionsAsync();

    /// <summary>获取指定终端会话详情</summary>
    Task<SessionInfo?> GetSessionAsync(String mobile);

    /// <summary>强制移除会话</summary>
    Task<Boolean> RemoveSessionAsync(String mobile);

    /// <summary>获取黑名单列表</summary>
    Task<BlacklistInfo?> GetBlacklistAsync();

    /// <summary>添加黑名单</summary>
    Task<Boolean> AddBlacklistAsync(String mobile);

    /// <summary>移除黑名单</summary>
    Task<Boolean> RemoveBlacklistAsync(String mobile);

    /// <summary>下发指令</summary>
    Task<Boolean> SendCommandAsync(String mobile, String bodyType, Dictionary<String, Object> body);
}

/// <summary>服务器统计</summary>
public class ServerStats
{
    public String Server { get; set; } = "";
    public Boolean Running { get; set; }
    public String Started { get; set; } = "";
}

/// <summary>会话列表</summary>
public class SessionList
{
    public Int32 Total { get; set; }

    /// <summary>会话详情列表</summary>
    public SessionInfo[]? Items { get; set; }
}

/// <summary>会话详情</summary>
public class SessionInfo
{
    public String Mobile { get; set; } = "";
    public String SessionId { get; set; } = "";
    public String Remote { get; set; } = "";
    public String Time { get; set; } = "";
}

/// <summary>黑名单信息</summary>
public class BlacklistInfo
{
    public Int32 Total { get; set; }
    public String[] Items { get; set; } = [];
}