using ColaFlow.Modules.Mcp.Domain.ValueObjects;

namespace ColaFlow.Modules.Mcp.Application.DTOs;

/// <summary>
/// DTO for PendingChange response
/// </summary>
public class PendingChangeDto
{
    public Guid Id { get; set; }
    public Guid TenantId { get; set; }
    public Guid ApiKeyId { get; set; }
    public string ToolName { get; set; } = null!;
    public DiffPreviewDto Diff { get; set; } = null!;
    public string Status { get; set; } = null!;
    public DateTime CreatedAt { get; set; }
    public DateTime ExpiresAt { get; set; }
    public Guid? ApprovedBy { get; set; }
    public DateTime? ApprovedAt { get; set; }
    public Guid? RejectedBy { get; set; }
    public DateTime? RejectedAt { get; set; }
    public string? RejectionReason { get; set; }
    public DateTime? AppliedAt { get; set; }
    public string? ApplicationResult { get; set; }
    public bool IsExpired { get; set; }
    public bool CanBeApproved { get; set; }
    public bool CanBeRejected { get; set; }
    public string Summary { get; set; } = null!;
}
