18 lines
		
	
	
		
			967 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			967 B
		
	
	
	
		
			C#
		
	
	
	
	
	
using GestionIntegral.Api.Models.Radios;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Threading.Tasks;
 | 
						|
// using System.Data; // Solo si se usa transacción para historial
 | 
						|
 | 
						|
namespace GestionIntegral.Api.Data.Repositories.Radios
 | 
						|
{
 | 
						|
    public interface ICancionRepository
 | 
						|
    {
 | 
						|
        Task<IEnumerable<Cancion>> GetAllAsync(string? temaFilter, string? interpreteFilter, int? idRitmoFilter);
 | 
						|
        Task<Cancion?> GetByIdAsync(int id);
 | 
						|
        Task<Cancion?> CreateAsync(Cancion nuevaCancion /*, int idUsuario, IDbTransaction transaction - si hay historial */);
 | 
						|
        Task<bool> UpdateAsync(Cancion cancionAActualizar /*, int idUsuario, IDbTransaction transaction */);
 | 
						|
        Task<bool> DeleteAsync(int id /*, int idUsuario, IDbTransaction transaction */);
 | 
						|
        Task<bool> ExistsByTemaAndInterpreteAsync(string tema, string interprete, int? excludeId = null); // Ejemplo de unicidad
 | 
						|
        Task<IEnumerable<Cancion>> GetRandomCancionesAsync(int count);
 | 
						|
    }
 | 
						|
} |