using System.Threading; using System.Threading.Tasks; using FrameworkDAL.CustomCode.EntityViewer.DTOs; using GB5Shared.DTO.Framework.Login; namespace FrameworkBLL.EntityViewer { public interface IEntityViewerBLL { /// The type identifier of the entity being viewed. /// The identifier of the specific entity instance. /// The current user's login details. /// /// The gateway host this request came in through (host[:port], no scheme — e.g. /// "localhost:55"), captured by the endpoint from the X-Forwarded-Host header the /// GB5Build gateway sets on every proxied call (falling back to HttpContext.Request.Host /// for direct, non-gatewayed calls). Substituted for a resolved MWEBSERVICE template's /// literal {BaseURI} token: the target the template points at (e.g. /prs/TimeSlip/ /// GetTimeSlip) is reachable through that same gateway host, so no static config is /// needed per environment. Pass null to fall back to SysJobSettings:Gb4ServiceBaseUrl /// (e.g. for non-HTTP callers). /// /// Cancellation token for async operation. Task GetEntityViewer( int objectTypeId, int objectId, LoginDTO loginDTO, string? requestHost = null, CancellationToken ct = default); } }