using LiteCqrs;
using TeleWave.Application.Common.Models;
using TeleWave.Domain.Media;

namespace TeleWave.Application.Media.Register;

/// <summary>
/// Регистрирует уже лежащий в хранилище исходник (<paramref name="SourceToken"/> — временный файл в
/// uploads/ или имя файла в inbox/) как <see cref="MediaAsset"/> в статусе Pending и переносит его в
/// originals/. Постановку в очередь обработки делает вызывающая сторона после коммита.
/// </summary>
public sealed record RegisterMediaAssetCommand(
    string SourceToken,
    MediaSource Source,
    string OriginalFileName
) : ICommand<Result<Guid>>;
