using System.Data.Common; using GB5Shared.DTO.Framework.Login; using GB5Shared.ResponseStandard; using PIEDAL.DTO.Variant; namespace PIEDAL.CustomCode.Variant; public interface IPIEVariantDAL { // ── Reads ───────────────────────────────────────────────────────────────── Task GetPIEVariantAsync(Guid variantId, LoginDTO login, CancellationToken ct); Task> GetPIEVariantImplicationsAsync(Guid variantId, LoginDTO login, CancellationToken ct); Task> GetPIEVariantsByModuleAsync(Guid moduleId, LoginDTO login, CancellationToken ct); // ── Writes ──────────────────────────────────────────────────────────────── Task> SavePIEVariantAsync(PIEVariantDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> UpdatePIEVariantAsync(PIEVariantDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> SoftDeletePIEVariantAsync(Guid variantId, LoginDTO login, DbTransaction tx, CancellationToken ct); // ── Implication writes ──────────────────────────────────────────────────── Task DeleteVariantImplicationsAsync(Guid variantId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task InsertVariantImplicationAsync(PIEVariantImplicationDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); }