public interface IGatewayRegistryService
{
    Task<WardGateway> RegisterAsync(Guid siteId, RegisterGatewayRequest req);
    Task<WardGateway> GetByIdAsync(Guid id);
    Task<List<WardGateway>> ListBySiteAsync(Guid siteId, string? department);
    Task<WardGateway> RecordHeartbeatAsync(Guid gatewayId, GatewayHeartbeatRequest req, string? authenticatedGatewayId);
    Task MarkOfflineAsync(Guid gatewayId);
}