using NexusReader.Application.Abstractions.Messaging;

namespace NexusReader.Application.Commands.Library;

/// <summary>
/// Command to ingest a new ebook into the library.
/// </summary>
/// <param name="Title">The title of the book.</param>
/// <param name="AuthorName">The name of the author.</param>
/// <param name="CoverImage">The raw bytes of the cover image (optional).</param>
/// <param name="EpubData">The raw bytes of the EPUB file.</param>
/// <param name="Description">The description or summary of the book (optional).</param>
/// <param name="UserId">The ID of the user owning the book.</param>
/// <param name="TenantId">The tenant ID for multi-tenant isolation. Defaults to "global" for single-tenant or default usage.</param>
public record IngestEbookCommand(
    string Title,
    string AuthorName,
    byte[]? CoverImage,
    byte[] EpubData,
    string? Description,
    string UserId,
    string TenantId = "global"
) : ICommand<Guid>;
