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