using FastEndpoints; using FrameworkBLL.Promotion; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.Framework.ResponseStandard; using GB5Shared.FastEndPoint; using static GB5Shared.GB5Constant.Constant; namespace FrameworkSL.Endpoints.Promotion { public class GetSelectListPromotionCounterparty : BaseEndpoint> { private readonly IPromotionCounterpartyBLL _BLL; public GetSelectListPromotionCounterparty(IPromotionCounterpartyBLL bll) => _BLL = bll; public override void Configure() { Get("/PromotionCounterparty/GetSelectListPromotionCounterparty"); AllowAnonymous(); } public record Parameters([property: FromHeader] string Login); // MPROMOTIONCOUNTERPARTY has no TenantId column at all — this is genuinely // deployment-wide config (which environments this install can exchange packages with), // not tenant data, so OVERALL is the correct level, not CLIENT_LEVEL. protected override string? GetCacheKey(Parameters req, LoginDTO login) => "PromotionCounterparty:SelectList"; protected override async Task> ExecuteAsync(Parameters req, LoginDTO login, CancellationToken ct) { var result = await _BLL.GetSelectListPromotionCounterparty(login, ct); return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(result, CacheKeyLevel.OVERALL, login); } } }