using System.Net;
using System.Text.Json;
using XFEExtension.NetCore.ServerInteractive.Interfaces;
using XFEExtension.NetCore.ServerInteractive.Models.ServerModels;
using XFEExtension.NetCore.ServerInteractive.Models.UserModels;
using XFEExtension.NetCore.XFETransform.Json;
namespace XFEExtension.NetCore.ServerInteractive.Utilities.DataTable;
///
/// XFE数据表格接口
///
public interface IXFEDataTable
{
///
/// 添加数据所需的最小权限
///
int AddPermissionLevel { get; set; }
///
/// 移除数据所需的最小权限
///
int RemovePermissionLevel { get; set; }
///
/// 更改数据所需的最小权限
///
int ChangePermissionLevel { get; set; }
///
/// 获取数据所需的最小权限
///
int GetPermissionLevel { get; set; }
///
/// 获取加密用户登录列表的方法
///
Func> GetEncryptedUserLoginModelFunction { get; set; }
///
/// 获取用户列表的方法
///
Func> GetUsersFunction { get; set; }
///
/// Json序列化选项
///
JsonSerializerOptions? JsonSerializerOptions { get; set; }
///
/// 用户Json序列化选项
///
JsonSerializerOptions? UserJsonSerializerOptions { get; set; }
///
/// 表名称,用其中元素的名称命名即可(如:Order(订单))
///
string TableName { get; set; }
///
/// 请求时使用的表名称,开头小写(如:order)
///
string TableNameInRequest { get; set; }
///
/// 表的显示名称,命名规则参照
///
string TableShowName { get; set; }
///
/// 执行一条语句
///
/// 执行的操作
/// Json节点
/// 参数
/// 状态码
Task Execute(string execute, XFEJsonNode requestJsonNode, ServerCoreReturnArgs r);
}