using Microsoft.AspNetCore.Http; using RMuseum.Models.GanjoorAudio; using RMuseum.Models.GanjoorAudio.ViewModels; using RMuseum.Models.UploadSession; using RMuseum.Models.UploadSession.ViewModels; using RSecurityBackend.Models.Generic; using System; using System.Threading.Tasks; namespace RMuseum.Services { /// /// Audio Narration Service /// public interface IAudioNarrationService { /// /// returns list of narrations /// /// /// send Guid.Empty if you want all narrations /// /// public Task> GetAll(PagingParameterModel paging, Guid filteredUserId, AudioReviewStatus status); /// /// return selected narration information /// /// /// Task> Get(int id); /// /// Gets Verse Sync Range Information /// /// narration id /// Task> GetPoemNarrationVerseSyncArray(int id); /// /// updates metadata for narration /// /// /// /// Task> UpdatePoemNarration(int id, PoemNarrationUpdateViewModel metadata); /// /// imports narration data from ganjoor MySql database /// /// User Id which becomes owner of imported data /// Task> OneTimeImport(Guid ownerRAppUserId); /// /// build profiles from exisng narrations data /// /// User Id which becomes owner of imported data /// error string if occurs Task BuildProfilesFromExistingData(Guid ownerRAppUserId); /// /// Initiate New Upload Session for audio /// /// /// Task> InitiateNewUploadSession(Guid userId); /// /// Save uploaded file /// /// /// Task> SaveUploadedFile(IFormFile uploadedFile); /// /// finalize upload session (add files) /// /// /// /// Task> FinalizeNewUploadSession(UploadSession session, UploadSessionFile[] files); /// /// Moderate pending narration /// /// /// /// /// Task> ModeratePoemNarration(int id, Guid moderatorId, PoemNarrationModerateViewModel model); /// /// Get Upload Session (including files) /// /// /// Task> GetUploadSession(Guid id); /// /// Get User Profiles /// /// /// Task> GetUserNarrationProfiles(Guid userId); /// /// Add a narration profile /// /// /// Task> AddUserNarrationProfiles(UserNarrationProfileViewModel profile); /// /// Update a narration profile /// /// /// Task> UpdateUserNarrationProfiles(UserNarrationProfileViewModel profile); /// /// Delete a narration profile /// /// /// /// Task> DeleteUserNarrationProfiles(Guid id, Guid userId); /// /// Get uploads descending by upload time /// /// /// if userId is empty all user uploads would be returned /// Task> GetUploads(PagingParameterModel paging, Guid userId); /// /// retry publish unpublished narrations /// public void RetryPublish(); } }