using CMSDAL.DTO.Site; using GB5Shared.DTO.Framework.Login; using System.Data.Common; namespace CMSDAL.CustomCode.Site; public interface ISiteDomainDAL { Task GetBySiteAsync(int siteId, LoginDTO loginDTO, CancellationToken ct = default); Task SaveAsync(SiteDomainDTO dto, LoginDTO loginDTO, DbTransaction? tx = null, CancellationToken ct = default); Task DeleteAsync(int siteDomainId, LoginDTO loginDTO, CancellationToken ct = default); // The domain-resolution primitive SiteResolverBLL is built on — resolves an incoming Host // header to its owning Site/TenantId. Deliberately not tenant-filtered; see // SiteDomainQB.RESOLVE_SITE_BY_DOMAIN. Returns null if no active domain/site match. Task ResolveSiteByDomainAsync(string domainName, LoginDTO loginDTO, CancellationToken ct = default); }