using Penumbra.Api.Enums;

namespace LightlessSync.Interop.Ipc;

/// <summary>
///     Represents a single texture conversion request, including optional duplicate targets.
/// </summary>
public sealed record TextureConversionJob(
    string InputFile,
    string OutputFile,
    TextureType TargetType,
    bool IncludeMipMaps = true,
    IReadOnlyList<string>? DuplicateTargets = null);

/// <summary>
///     Progress payload for a texture conversion batch.
/// </summary>
/// <param name="Completed">Number of completed conversions.</param>
/// <param name="Total">Total number of conversions scheduled.</param>
/// <param name="CurrentJob">The job currently being processed.</param>
public sealed record TextureConversionProgress(int Completed, int Total, TextureConversionJob CurrentJob);
