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);
}
}