MVCPostall/Postall.Domain/Contracts/Repositories/IVideoRepository.cs
2025-03-08 19:13:24 -03:00

23 lines
1007 B
C#

using Postall.Domain.Entities;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Postall.Domain
{
public interface IVideoRepository
{
Task<IEnumerable<VideoData>> GetAllAsync();
Task<VideoData> GetByIdAsync(string id);
Task<VideoData> GetByVideoIdAsync(string videoId);
Task<IList<VideoData>> GetByUserIdAsync(string userId);
Task<IList<VideoData>> GetByChannelIdAsync(string channelId);
Task<IList<VideoData>> GetByUserIdAndChannelIdAsync(string userId, string channelId);
Task<VideoData> GetByUserIdAndVideoIdAsync(string userId, string videoId);
Task<VideoData> AddAsync(VideoData videoData);
Task<IEnumerable<VideoData>> AddManyAsync(IEnumerable<VideoData> videos);
Task<bool> UpdateAsync(VideoData videoData);
Task<bool> DeleteAsync(string id);
Task<bool> DeleteByVideoIdAsync(string videoId);
Task<IEnumerable<VideoData>> SearchAsync(string searchTerm);
}
}