using System.Text.Json;
using System.Text.Json.Serialization;

namespace DramaLing.Api.Models.DTOs;

public class ReplicatePrediction
{
    [JsonPropertyName("id")]
    public string Id { get; set; } = string.Empty;

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

    [JsonPropertyName("output")]
    public JsonElement? Output { get; set; }

    [JsonPropertyName("error")]
    public string? Error { get; set; }

    [JsonPropertyName("version")]
    public string? Version { get; set; }

    [JsonPropertyName("metrics")]
    public Dictionary<string, object>? Metrics { get; set; }

    [JsonPropertyName("created_at")]
    public DateTime? CreatedAt { get; set; }

    [JsonPropertyName("started_at")]
    public DateTime? StartedAt { get; set; }

    [JsonPropertyName("completed_at")]
    public DateTime? CompletedAt { get; set; }
}

public class ReplicatePredictionStatus
{
    public string Status { get; set; } = string.Empty;
    public JsonElement? Output { get; set; }
    public string? Error { get; set; }
    public string? Version { get; set; }
    public Dictionary<string, object>? Metrics { get; set; }
    public DateTime? CompletedAt { get; set; }
}