Public Access
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using MeetingAssistant.MeetingNotes;
|
|
|
|
namespace MeetingAssistant.Workflow;
|
|
|
|
public enum MeetingWorkflowEventType
|
|
{
|
|
Created,
|
|
StateTransition,
|
|
SpeakerIdentified,
|
|
TranscriptLine
|
|
}
|
|
|
|
public sealed record MeetingWorkflowEvent(
|
|
MeetingWorkflowEventType Type,
|
|
MeetingSessionArtifacts Artifacts,
|
|
AssistantContextState? FromState = null,
|
|
AssistantContextState? ToState = null,
|
|
string? SpeakerName = null,
|
|
string? TranscriptLineText = null)
|
|
{
|
|
public static MeetingWorkflowEvent Created(MeetingSessionArtifacts artifacts)
|
|
{
|
|
return new MeetingWorkflowEvent(MeetingWorkflowEventType.Created, artifacts);
|
|
}
|
|
|
|
public static MeetingWorkflowEvent StateTransition(
|
|
MeetingSessionArtifacts artifacts,
|
|
AssistantContextState from,
|
|
AssistantContextState to)
|
|
{
|
|
return new MeetingWorkflowEvent(MeetingWorkflowEventType.StateTransition, artifacts, from, to);
|
|
}
|
|
|
|
public static MeetingWorkflowEvent SpeakerIdentified(
|
|
MeetingSessionArtifacts artifacts,
|
|
string speakerName)
|
|
{
|
|
return new MeetingWorkflowEvent(MeetingWorkflowEventType.SpeakerIdentified, artifacts, SpeakerName: speakerName);
|
|
}
|
|
|
|
public static MeetingWorkflowEvent TranscriptLine(
|
|
MeetingSessionArtifacts artifacts,
|
|
string line,
|
|
string speakerName)
|
|
{
|
|
return new MeetingWorkflowEvent(
|
|
MeetingWorkflowEventType.TranscriptLine,
|
|
artifacts,
|
|
SpeakerName: speakerName,
|
|
TranscriptLineText: line);
|
|
}
|
|
}
|