using GB5Shared.DTO.Framework.Login; using ECPDAL.Meeting.DTOs; namespace ECPBLL.Meeting.Interfaces; public interface IRecordingTranscriptBLL { Task GetRecordingTranscriptAsync(int recordingTranscriptId, LoginDTO login, CancellationToken ct); Task GetRecordingTranscriptsForObjectAsync(int objectTypeId, int objectId, LoginDTO login, CancellationToken ct); /// Registers an already-uploaded recording (TATTACHMENT) against an object /// (Meeting today) as a new, pending TRECORDINGTRANSCRIPT row. Recording capture itself is /// out of scope for v1 — "bring your own recording", per the plan. Task AttachRecordingAsync(AttachRecordingDTO dto, LoginDTO login, CancellationToken ct); /// Triggers transcription then summarization via GB5Shared.RecordingIntelligence. /// IAICapabilityService. The default DI registration (NotConfiguredAICapabilityService) /// always throws — this method catches that (and any other processing failure) and marks /// PROCESSINGSTATUS=4/failed with a logged reason, returning a normal (non-throwing) result, /// rather than letting the failure surface as an unhandled 500. This is a deliberate, /// documented exception to the BLL "rethrow on failure" convention: an AI-capability failure /// is an expected, recoverable business outcome for this operation, not a bug to propagate. Task TranscribeAndSummarizeAsync(int recordingTranscriptId, LoginDTO login, CancellationToken ct); /// Soft-deletes (STATUS=2) a recording/transcript row. Task DeleteRecordingTranscriptAsync(int recordingTranscriptId, LoginDTO login, CancellationToken ct); }