namespace TakeoutSaaS.Module.Storage.Models;

/// <summary>
/// 上传结果信息。
/// </summary>
public sealed class StorageUploadResult
{
    /// <summary>
    /// 对象键。
    /// </summary>
    public string ObjectKey { get; init; } = string.Empty;

    /// <summary>
    /// 可访问的 URL（可能已包含签名）。
    /// </summary>
    public string Url { get; init; } = string.Empty;

    /// <summary>
    /// 带过期时间的签名 URL（若生成）。
    /// </summary>
    public string? SignedUrl { get; init; }

    /// <summary>
    /// 文件大小。
    /// </summary>
    public long FileSize { get; init; }

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