using LiveForum.Code.AttributeExtend;
using LiveForum.Code.Base;
using LiveForum.IService.Others;
using LiveForum.Model.Dto.Others;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace LiveForum.WebApi.Controllers
{
///
/// 系统配置相关接口
///
///
[Route("api/[controller]/[action]")]
[ApiController]
public class ConfigController(IConfigService config) : ControllerBase
{
///
/// 获取应用配置
///
///
[HttpGet]
[ResponseCacheExtend(Duration = 600)] // 10分钟缓存
public Task>> GetAppConfig() => config.GetAppConfig();
///
/// 获取协议内容
///
/// 请求参数
///
[HttpGet]
[ResponseCacheExtend(Duration = 600, VaryByQueryKeys = new[] { "AgreementType" })] // 10分钟缓存,按协议类型区分
public Task> GetAgreement([FromQuery]GetAgreementReq request) => config.GetAgreement(request);
///
/// 检查更新
///
/// 请求参数
///
[HttpGet]
[ResponseCacheExtend(Duration = 1800, VaryByQueryKeys = new[] { "Platform", "CurrentVersion" })] // 30分钟缓存,按平台和版本区分
public Task> CheckUpdate([FromQuery] CheckUpdateReq request) => config.CheckUpdate(request);
}
}