using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
namespace Avalonia_Services.Core
{
///
/// 端点挂载的宿主目标。
///
[Flags]
public enum EndpointHostTarget
{
/// 挂载到 Avalonia-API(ASP.NET Core Web API)。
Api = 1,
/// 挂载到 Avalonia-PC(桌面 WebView)。
Pc = 2,
/// 同时挂载到 API 和 PC。
All = Api | Pc,
}
///
/// 单个端点定义。
///
public class ServiceEndpoint
{
/// 路由路径,如 "api/wData"
public string Pattern { get; init; } = string.Empty;
/// HTTP 方法(GET/POST/PUT/DELETE)
public string HttpMethod { get; init; } = "GET";
/// 端点名称(用于 OpenAPI / 日志)
public string? Name { get; set; }
/// OpenAPI 分组标签。
public string? OpenApiTag { get; set; }
/// OpenAPI 摘要。
public string? OpenApiSummary { get; set; }
/// OpenAPI 描述。
public string? OpenApiDescription { get; set; }
/// OpenAPI 请求体类型。
public Type? OpenApiRequestType { get; set; }
/// OpenAPI 200 响应数据类型。
public Type? OpenApiResponseType { get; set; }
/// 端点处理器
public Func> Handler { get; init; } = _ => Task.FromResult