Public Access
39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using MeetingAssistant.MeetingNotes;
|
|
|
|
namespace MeetingAssistant.Workflow;
|
|
|
|
public enum MeetingWorkflowEventType
|
|
{
|
|
Created,
|
|
StateTransition,
|
|
SpeakerIdentified
|
|
}
|
|
|
|
public sealed record MeetingWorkflowEvent(
|
|
MeetingWorkflowEventType Type,
|
|
MeetingSessionArtifacts Artifacts,
|
|
AssistantContextState? FromState = null,
|
|
AssistantContextState? ToState = null,
|
|
string? SpeakerName = 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);
|
|
}
|
|
}
|