using NetTaste;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;

namespace OASystem.API.Middlewares
{
    /// <summary>
    /// api所有入口固定提示
    /// </summary>
    public class FixedPromptMiddleware
    {
        private readonly RequestDelegate _next;

        public FixedPromptMiddleware(RequestDelegate next)
        {
            _next = next;
        }

        public async Task InvokeAsync(HttpContext context)
        {
            // 检查是否为 API 请求
            if (context.Request.Path.StartsWithSegments("/api"))
            {
                // 设置响应内容类型
                context.Response.ContentType = "text/plain";

                //固定提示格式
                var response = new JsonView()
                {
                    Code = 400,
                    Msg = "紧急通知:因明年接入AI接口,需服务器框架升级及数据库数据备份,OA系统pc端及手机端将暂停使用,我们尽量在48小时内升级完成并恢复使用。"

                };

                // 写入固定的提示信息
                await context.Response.WriteAsync(System.Text.Json.JsonSerializer.Serialize(response,new JsonSerializerOptions
                {
                    Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
                }));

                // 不再调用后续中间件
                return;
            }

            // 调用后续中间件
            await _next(context);
        }
    }
}