namespace ECPDAL.Meeting.DTOs; /// /// A single row in TRECORDINGTRANSCRIPT — the shared Recording/Transcript/Summary capability /// (plan: "New shared capability: Recording/Transcript/Summary"). Polymorphic via /// ObjectTypeId+ObjectId so Meeting, CRM Call, and Recruitment Interview can all reuse this same /// table later; housed in MeetingDAL only because Meeting is Phase 3's sole real consumer. The /// IAICapabilityService interface that produces TranscriptText/SummaryText lives in /// GB5Shared.RecordingIntelligence, not here, so future non-Meeting consumers never need to /// depend on the Meeting module. /// public class RecordingTranscriptDTO { public int RecordingTranscriptId { get; set; } public int ObjectTypeId { get; set; } // -> MENTITY.ENTITYID (Meeting, TCALL, Interview, ...) public int ObjectId { get; set; } public int RecordingAttachmentId { get; set; } = -1; // -> TATTACHMENT.ATTACHMENTID public string? TranscriptText { get; set; } public string? SummaryText { get; set; } public byte ProcessingStatus { get; set; } = 1; // 1=pending 2=transcribed 3=summarized 4=failed public string? FailureReason { get; set; } public int TenantId { get; set; } = -1; public string DatabaseName { get; set; } = string.Empty; public byte DatabaseType { get; set; } public short Version { get; set; } public byte Status { get; set; } = 1; // 1=Active 2=Deleted public int CreatedById { get; set; } = -1; public DateTime CreatedOn { get; set; } public int ModifiedById { get; set; } = -1; public DateTime ModifiedOn { get; set; } } /// Input shape for attaching a recording to an object (Meeting today). The caller /// supplies the already-uploaded TATTACHMENT id — recording capture itself is out of scope for /// v1, per the plan ("bring your own recording"). public class AttachRecordingDTO { public int ObjectTypeId { get; set; } public int ObjectId { get; set; } public int RecordingAttachmentId { get; set; } }