using FrameworkDAL.DTO.Address; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.ResponseStandard; using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FrameworkDAL.CustomCode.Address { public interface IAddressDAL { Task GetAddress(int AddressId, string LanguageId, LoginDTO LoginDTO); Task GetAddressDetail(int ObjectTypeId, int ObjectId, LoginDTO LoginDTO); // Duplicate-tolerant lookup (unlike GetAddressDetail, which uses QuerySingleAsync and throws // "Sequence contains more than one element" if more than one MADDRESS row exists for the // same ObjectTypeId/ObjectId) — used by callers that need to decide insert-vs-update. Task FindAddress(int ObjectTypeId, int ObjectId, LoginDTO loginDTO, DbTransaction? transaction = null); // Returns every MADDRESS row for the given owner (ObjectTypeId/ObjectId can be 1:N — see FindAddress remarks). Task> FindAddresses(int ObjectTypeId, int ObjectId, LoginDTO loginDTO, DbTransaction? transaction = null); Task GetSelectListAddress(int FirstNumber, int MaxResult, CriteriaDTO CriteriaDTO, LoginDTO LoginDTO, bool IsCount = false); Task GetSelectListAddressNew(CriteriaDTO CriteriaDTO, LoginDTO LoginDTO); Task SaveAddress(AddressDTO addressDTO, string LanguageId, LoginDTO loginDTO, DbTransaction? transaction = null); Task CountAddress(AddressDTO addressDTO, string LanguageId, LoginDTO loginDTO); Task UpdateAddress(AddressDTO addressDTO, LoginDTO loginDTO, DbTransaction? transaction = null); Task> DeleteAddress(int addressId, LoginDTO loginDTO); } }