namespace QYZH.InteractiveMagazine.Models.Dto.Mall;
///
/// 小程序商品展示输出
///
public class WxProductOutput
{
public long Id { get; set; }
public string Name { get; set; } = string.Empty;
public string? Description { get; set; }
public string? ImageUrl { get; set; }
public int Price { get; set; }
public string Type { get; set; } = string.Empty;
///
/// 皮肤信息(仅 PetBg 类型有值)
///
public PetSkinBrief? Skin { get; set; }
///
/// 用户是否已拥有(PetBg 类型时判断背包中是否有)
///
public bool Owned { get; set; }
}
///
/// 皮肤简要信息
///
public class PetSkinBrief
{
public long SkinId { get; set; }
public string SkinName { get; set; } = string.Empty;
public string? Description { get; set; }
public string Rarity { get; set; } = string.Empty;
///
/// 皮肤预览图(取当前进化阶段第一张图片)
///
public string? PreviewImage { get; set; }
}
///
/// 兑换输入
///
public class ExchangeInput
{
///
/// 商品Id
///
public long ProductId { get; set; }
///
/// 兑换数量(默认1)
///
public int Quantity { get; set; } = 1;
}
///
/// 兑换输出
///
public class ExchangeOutput
{
public long RecordId { get; set; }
public string ProductName { get; set; } = string.Empty;
public int PointsCost { get; set; }
public int PointsBalance { get; set; }
public string Message { get; set; } = string.Empty;
}
///
/// 兑换记录输出
///
public class ExchangeRecordOutput
{
public long Id { get; set; }
public long ProductId { get; set; }
public string ProductName { get; set; } = string.Empty;
public string ProductType { get; set; } = string.Empty;
public int PointsCost { get; set; }
public int PointsBalance { get; set; }
public int Quantity { get; set; }
public string Status { get; set; } = string.Empty;
public DateTime CreatedAt { get; set; }
}