using GestionIntegral.Api.Models.Distribucion; using System.Collections.Generic; using System.Threading.Tasks; using System.Data; namespace GestionIntegral.Api.Data.Repositories.Distribucion { public interface IPublicacionRepository { Task> GetAllAsync(string? nombreFilter, int? idEmpresaFilter, bool? soloHabilitadas); Task<(Publicacion? Publicacion, string? NombreEmpresa)> GetByIdAsync(int id); Task GetByIdSimpleAsync(int id); // Para uso interno del servicio Task CreateAsync(Publicacion nuevaPublicacion, int idUsuario, IDbTransaction transaction); Task UpdateAsync(Publicacion publicacionAActualizar, int idUsuario, IDbTransaction transaction); Task DeleteAsync(int id, int idUsuario, IDbTransaction transaction); // Borrado fĂ­sico con historial Task ExistsByNameAndEmpresaAsync(string nombre, int idEmpresa, int? excludeIdPublicacion = null); Task IsInUseAsync(int id); Task> GetConfiguracionDiasAsync(int idPublicacion); Task> GetPublicacionesIdsPorDiaSemanaAsync(byte diaSemana); // Devuelve solo IDs Task UpdateConfiguracionDiasAsync(int idPublicacion, IEnumerable diasActivos, IDbTransaction transaction); } }