| | | 1 | | namespace NexusLabs.Needlr.AgentFramework.Langfuse; |
| | | 2 | | |
| | | 3 | | /// <summary> |
| | | 4 | | /// Serializable payload for <c>POST /api/public/comments</c>. Property names are projected to |
| | | 5 | | /// camelCase by <see cref="LangfuseApiClient"/>. |
| | | 6 | | /// </summary> |
| | | 7 | | internal sealed record LangfuseCommentRequest |
| | | 8 | | { |
| | | 9 | | /// <summary>Gets the id of the project the comment is attached to. Required by Langfuse.</summary> |
| | 8 | 10 | | public required string ProjectId { get; init; } |
| | | 11 | | |
| | | 12 | | /// <summary>Gets the object type (<c>TRACE</c>, <c>OBSERVATION</c>, <c>SESSION</c>, <c>PROMPT</c>).</summary> |
| | 8 | 13 | | public required string ObjectType { get; init; } |
| | | 14 | | |
| | | 15 | | /// <summary>Gets the id of the object the comment is attached to.</summary> |
| | 8 | 16 | | public required string ObjectId { get; init; } |
| | | 17 | | |
| | | 18 | | /// <summary>Gets the comment content (markdown; Langfuse limits this to 5000 characters).</summary> |
| | 8 | 19 | | public required string Content { get; init; } |
| | | 20 | | |
| | | 21 | | /// <summary>Gets the optional id of the user who authored the comment.</summary> |
| | 4 | 22 | | public string? AuthorUserId { get; init; } |
| | | 23 | | } |