Files

65 lines
1.9 KiB
C#

using MeetingAssistant.MeetingNotes;
namespace MeetingAssistant.Workflow;
public enum MeetingWorkflowEventType
{
Created,
StateTransition,
SpeakerIdentified,
TranscriptLine,
AttendeeAdded
}
public sealed record MeetingWorkflowEvent(
MeetingWorkflowEventType Type,
MeetingSessionArtifacts Artifacts,
AssistantContextState? FromState = null,
AssistantContextState? ToState = null,
string? SpeakerName = null,
string? TranscriptLineText = null,
string? AttendeeName = 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);
}
public static MeetingWorkflowEvent AttendeeAdded(
MeetingSessionArtifacts artifacts,
string attendeeName)
{
return new MeetingWorkflowEvent(
MeetingWorkflowEventType.AttendeeAdded,
artifacts,
AttendeeName: attendeeName);
}
}