using System.Data.Common; using GB5Shared.DTO.Framework.Login; using GB5Shared.ResponseStandard; using PIEDAL.DTO.Module; namespace PIEDAL.CustomCode.Module; public interface IPIEModuleDAL { // ── Reads ───────────────────────────────────────────────────────────────── Task GetPIEModuleAsync(Guid moduleId, LoginDTO login, CancellationToken ct); Task> GetPIEModuleDependenciesAsync(Guid moduleId, LoginDTO login, CancellationToken ct); Task> GetAllDependenciesForCycleCheckAsync(LoginDTO login, CancellationToken ct); Task> GetPIEModuleSelectListAsync(LoginDTO login, CancellationToken ct); // ── KPI reads ───────────────────────────────────────────────────────────── Task GetPIEKpiAsync(Guid kpiId, LoginDTO login, CancellationToken ct); Task> GetKpisByModuleAsync(Guid moduleId, LoginDTO login, CancellationToken ct); // ── Writes ──────────────────────────────────────────────────────────────── Task> SavePIEModuleAsync(PIEModuleDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> UpdatePIEModuleAsync(PIEModuleDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> SoftDeletePIEModuleAsync(Guid moduleId, LoginDTO login, DbTransaction tx, CancellationToken ct); // ── Dependency writes ───────────────────────────────────────────────────── Task DeleteModuleDependenciesAsync(Guid moduleId, LoginDTO login, DbTransaction tx, CancellationToken ct); Task InsertModuleDependencyAsync(PIEModuleDependencyDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); // ── KPI writes ──────────────────────────────────────────────────────────── Task> SavePIEKpiAsync(PIEKpiDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> UpdatePIEKpiAsync(PIEKpiDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct); Task> SoftDeletePIEKpiAsync(Guid kpiId, LoginDTO login, DbTransaction tx, CancellationToken ct); }