using System.Data.Common; using GB5Shared.DTO.Framework.Login; namespace DXPDAL.Party; public interface IPartyDAL { Task GetPartyAsync(int dxpPartyId, LoginDTO login, CancellationToken ct); // Dedup lookup — any non-null hash parameter is matched; pass null for hashes not available. Task> FindByIdentityHashAsync( string? gstinHash, string? panHash, string? mobileHash, string? emailHash, LoginDTO login, CancellationToken ct); Task SavePartyAsync(PartyDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task UpdatePartyAsync(PartyDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> GetPartyLinksAsync(int dxpPartyId, LoginDTO login, CancellationToken ct); Task SavePartyLinkAsync(PartyLinkDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task RevokePartyLinkAsync(int dxpPartyLinkId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> GetPartyBranchLinksAsync(int dxpPartyId, LoginDTO login, CancellationToken ct); Task SavePartyBranchLinkAsync(PartyBranchLinkDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); }