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);
 | |
|     }
 | |
| } |