using Foxel.Models;
using Foxel.Models.Response.Face;
using Foxel.Models.Response.Picture;
using Foxel.Api.Management;
namespace Foxel.Services.Management;
public interface IFaceManagementService
{
///
/// 获取所有人脸聚类(管理员)
///
Task> GetFaceClustersAsync(int page = 1, int pageSize = 20);
///
/// 获取指定用户的人脸聚类
///
Task> GetUserFaceClustersAsync(int userId, int page = 1, int pageSize = 20);
///
/// 根据聚类ID获取相关图片(管理员)
///
Task> GetPicturesByClusterAsync(int clusterId, int page = 1, int pageSize = 20);
///
/// 根据聚类ID获取指定用户的相关图片
///
Task> GetUserPicturesByClusterAsync(int userId, int clusterId, int page = 1, int pageSize = 20);
///
/// 更新聚类信息(管理员)
///
Task UpdateClusterAsync(int clusterId, string? personName, string? description = null);
///
/// 更新用户聚类信息
///
Task UpdateUserClusterAsync(int userId, int clusterId, string? personName, string? description = null);
///
/// 合并两个聚类(管理员)
///
Task MergeClustersAsync(int sourceClusterId, int targetClusterId);
///
/// 合并用户的两个聚类
///
Task MergeUserClustersAsync(int userId, int sourceClusterId, int targetClusterId);
///
/// 从聚类中移除人脸(管理员)
///
Task RemoveFaceFromClusterAsync(int faceId);
///
/// 从用户聚类中移除人脸
///
Task RemoveUserFaceFromClusterAsync(int userId, int faceId);
///
/// 删除聚类(管理员)
///
Task DeleteClusterAsync(int clusterId);
///
/// 获取聚类统计信息(管理员)
///
Task GetClusterStatisticsAsync();
}