using TakeoutSaaS.Application.Storage.Enums;

namespace TakeoutSaaS.Application.Storage.Contracts;

/// <summary>
/// 直传凭证请求模型。
/// </summary>
/// <remarks>
/// 创建直传请求。
/// </remarks>
public sealed class DirectUploadRequest(UploadFileType fileType, string fileName, string contentType, long contentLength, string? requestOrigin)
{
    /// <summary>
    /// 文件类型。
    /// </summary>
    public UploadFileType FileType { get; } = fileType;

    /// <summary>
    /// 文件名。
    /// </summary>
    public string FileName { get; } = fileName;

    /// <summary>
    /// 内容类型。
    /// </summary>
    public string ContentType { get; } = contentType;

    /// <summary>
    /// 文件长度。
    /// </summary>
    public long ContentLength { get; } = contentLength;

    /// <summary>
    /// 请求来源（Origin/Referer）。
    /// </summary>
    public string? RequestOrigin { get; } = requestOrigin;
}
