// Copyright (c) Microsoft. All rights reserved.

using System.Text.Json.Serialization;

namespace AgentOrchestration_HITL;

/// <summary>
/// Represents the input for the Human-in-the-Loop content generation workflow.
/// </summary>
public sealed class ContentGenerationInput
{
    [JsonPropertyName("topic")]
    public string Topic { get; set; } = string.Empty;

    [JsonPropertyName("max_review_attempts")]
    public int MaxReviewAttempts { get; set; } = 3;

    [JsonPropertyName("approval_timeout_hours")]
    public float ApprovalTimeoutHours { get; set; } = 72;
}

/// <summary>
/// Represents the content generated by the writer agent.
/// </summary>
public sealed class GeneratedContent
{
    [JsonPropertyName("title")]
    public string Title { get; set; } = string.Empty;

    [JsonPropertyName("content")]
    public string Content { get; set; } = string.Empty;
}

/// <summary>
/// Represents the human approval response.
/// </summary>
public sealed class HumanApprovalResponse
{
    [JsonPropertyName("approved")]
    public bool Approved { get; set; }

    [JsonPropertyName("feedback")]
    public string Feedback { get; set; } = string.Empty;
}
