using System.Text.Json.Serialization;
using HoneyBox.Model.Models;
using Microsoft.AspNetCore.Mvc;
namespace HoneyBox.Model.Models.Goods;
#region Request Models
///
/// 商品列表请求
///
public class GoodsListRequest : PageRequest
{
///
/// 分类ID
///
public int? CategoryId { get; set; }
///
/// 商品类型 (-1表示全部)
///
[JsonPropertyName("type")]
public int Type { get; set; } = -1;
}
///
/// 商品详情请求
///
public class GoodsDetailRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 箱号 (0表示自动选择)
///
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; } = 0;
}
///
/// 商品子奖品请求
///
public class GoodsChildrenRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 箱号
///
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
///
/// 奖品列表ID
///
[JsonPropertyName("goods_list_id")]
public int GoodsListId { get; set; }
}
///
/// 商品扩展配置请求
///
public class GoodsExtendRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 商品类型
///
[JsonPropertyName("goods_type")]
public int GoodsType { get; set; }
}
///
/// 箱号列表请求
///
public class BoxListRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
///
/// 箱号详情请求
///
public class BoxDetailRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 页码 (每页10个箱号)
///
[JsonPropertyName("page_no")]
public int PageNo { get; set; } = 0;
///
/// 排序方式: 0=箱号升序, 1=箱号降序, 2=余量降序
///
[JsonPropertyName("sort")]
public int Sort { get; set; } = 0;
}
///
/// 奖品数量统计请求
///
public class PrizeCountRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
///
/// 奖品内容请求
///
public class PrizeContentRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 箱号
///
[JsonPropertyName("num")]
public int Num { get; set; }
}
///
/// 中奖记录请求
///
public class PrizeLogsRequest : PageRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
[FromQuery(Name = "goods_id")]
public int GoodsId { get; set; }
///
/// 箱号
///
[JsonPropertyName("goods_num")]
[FromQuery(Name = "goods_num")]
public int GoodsNum { get; set; }
///
/// 赏品分类ID (null或0表示全部)
///
[JsonPropertyName("shang_id")]
[FromQuery(Name = "shang_id")]
public int? ShangId { get; set; }
}
#endregion
#region Response/DTO Models
///
/// 商品列表项DTO (兼容PHP API snake_case格式)
///
public class GoodsListDto
{
///
/// 商品ID
///
[JsonPropertyName("id")]
public int Id { get; set; }
///
/// 商品标题
///
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
///
/// 商品图片URL
///
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
///
/// 商品价格
///
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
///
/// 商品类型
///
[JsonPropertyName("type")]
public int Type { get; set; }
///
/// 类型文字
///
[JsonPropertyName("type_text")]
public string TypeText { get; set; } = string.Empty;
///
/// 总库存
///
[JsonPropertyName("stock")]
public int Stock { get; set; }
///
/// 已售库存
///
[JsonPropertyName("sale_stock")]
public int SaleStock { get; set; }
///
/// 状态
///
[JsonPropertyName("status")]
public int Status { get; set; }
///
/// 是否锁定
///
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
///
/// 是否首折
///
[JsonPropertyName("is_shou_zhe")]
public int IsShouZhe { get; set; }
///
/// 是否新品
///
[JsonPropertyName("new_is")]
public int NewIs { get; set; }
///
/// 参与次数
///
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
///
/// 需要抽奖次数
///
[JsonPropertyName("need_draw_num")]
public int NeedDrawNum { get; set; }
///
/// 显示价格
///
[JsonPropertyName("show_price")]
public string? ShowPrice { get; set; }
///
/// 角标文字
///
[JsonPropertyName("corner_text")]
public string? CornerText { get; set; }
}
///
/// 商品信息DTO
///
public class GoodsInfoDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
[JsonPropertyName("imgurl_detail")]
public string ImgUrlDetail { get; set; } = string.Empty;
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
[JsonPropertyName("stock")]
public int Stock { get; set; }
[JsonPropertyName("sale_stock")]
public int SaleStock { get; set; }
[JsonPropertyName("surplus_stock")]
public int SurplusStock { get; set; }
[JsonPropertyName("goodslist_stock")]
public int GoodslistStock { get; set; }
[JsonPropertyName("goodslist_surplus_stock")]
public int GoodslistSurplusStock { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
[JsonPropertyName("type_text")]
public string? TypeText { get; set; }
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
[JsonPropertyName("num")]
public int Num { get; set; }
[JsonPropertyName("addtime")]
public string? Addtime { get; set; }
[JsonPropertyName("goods_describe")]
public string? GoodsDescribe { get; set; }
[JsonPropertyName("coupon_is")]
public int CouponIs { get; set; }
[JsonPropertyName("coupon_pro")]
public int CouponPro { get; set; }
[JsonPropertyName("integral_is")]
public int IntegralIs { get; set; }
[JsonPropertyName("rage_is")]
public int RageIs { get; set; }
[JsonPropertyName("rage")]
public int Rage { get; set; }
[JsonPropertyName("lingzhu_is")]
public int LingzhuIs { get; set; }
[JsonPropertyName("lingzhu_fan")]
public int LingzhuFan { get; set; }
[JsonPropertyName("card_num")]
public int CardNum { get; set; }
[JsonPropertyName("is_shou_zhe")]
public int IsShouZhe { get; set; }
[JsonPropertyName("new_is")]
public int NewIs { get; set; }
[JsonPropertyName("collection_is")]
public int CollectionIs { get; set; }
[JsonPropertyName("three_time")]
public int ThreeTime { get; set; }
[JsonPropertyName("five_time")]
public int FiveTime { get; set; }
[JsonPropertyName("quanju_xiangou")]
public int QuanjuXiangou { get; set; }
[JsonPropertyName("daily_xiangou")]
public int DailyXiangou { get; set; }
[JsonPropertyName("prize_num")]
public int PrizeNum { get; set; }
[JsonPropertyName("shou_zhe_price")]
public string ShouZhePrice { get; set; } = "0";
}
///
/// 商品详情响应
///
public class GoodsDetailResponseDto
{
///
/// 商品信息
///
[JsonPropertyName("goods")]
public GoodsInfoDto Goods { get; set; } = new();
///
/// 锁箱信息
///
[JsonPropertyName("lock_info")]
public LockInfoDto LockInfo { get; set; } = new();
///
/// 参与用户头像列表
///
[JsonPropertyName("join_user")]
public List JoinUser { get; set; } = new();
///
/// 参与次数
///
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
///
/// 奖品列表
///
[JsonPropertyName("goodslist")]
public List GoodsList { get; set; } = new();
///
/// 限购信息
///
[JsonPropertyName("limit_info")]
public LimitInfoDto LimitInfo { get; set; } = new();
}
///
/// 锁箱信息DTO
///
public class LockInfoDto
{
///
/// 是否锁定
///
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
///
/// 锁定用户昵称
///
[JsonPropertyName("goods_lock_user_nickname")]
public string? GoodsLockUserNickname { get; set; }
///
/// 锁定用户头像
///
[JsonPropertyName("goods_lock_user_headimg")]
public string? GoodsLockUserHeadimg { get; set; }
///
/// 锁箱剩余时间 (Unix时间戳)
///
[JsonPropertyName("goods_lock_surplus_time")]
public long GoodsLockSurplusTime { get; set; }
}
///
/// 限购信息DTO
///
public class LimitInfoDto
{
///
/// 每日限购数量
///
[JsonPropertyName("daily_xiangou")]
public int DailyXiangou { get; set; }
///
/// 今日已购数量
///
[JsonPropertyName("daily_bought")]
public int DailyBought { get; set; }
///
/// 今日剩余可购数量
///
[JsonPropertyName("daily_remaining")]
public int DailyRemaining { get; set; }
///
/// 全局限购数量
///
[JsonPropertyName("quanju_xiangou")]
public int QuanjuXiangou { get; set; }
///
/// 全局已购数量
///
[JsonPropertyName("global_bought")]
public int GlobalBought { get; set; }
///
/// 全局剩余可购数量
///
[JsonPropertyName("global_remaining")]
public int GlobalRemaining { get; set; }
///
/// 是否测试用户
///
[JsonPropertyName("user_test")]
public int UserTest { get; set; }
}
///
/// 奖品列表项DTO
///
public class GoodsListItemDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("shang_info")]
public ShangInfoDto? ShangInfo { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("stock")]
public int Stock { get; set; }
[JsonPropertyName("surplus_stock")]
public int SurplusStock { get; set; }
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
[JsonPropertyName("goods_type")]
public int GoodsType { get; set; }
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
[JsonPropertyName("sc_money")]
public string ScMoney { get; set; } = "0";
[JsonPropertyName("sale_time")]
public string? SaleTime { get; set; }
[JsonPropertyName("pro")]
public string Pro { get; set; } = "0";
[JsonPropertyName("children")]
public bool Children { get; set; }
[JsonPropertyName("real_pro")]
public string RealPro { get; set; } = "0";
}
///
/// 赏品等级信息DTO
///
public class ShangInfoDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("img_url")]
public string? ImgUrl { get; set; }
[JsonPropertyName("color")]
public string? Color { get; set; }
[JsonPropertyName("special_img_url")]
public string? SpecialImgUrl { get; set; }
}
///
/// 子奖品DTO
///
public class GoodsChildrenDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
[JsonPropertyName("stock")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public int Stock { get; set; }
[JsonPropertyName("surplus_stock")]
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public int SurplusStock { get; set; }
[JsonPropertyName("goods_type")]
public int GoodsType { get; set; }
[JsonPropertyName("sale_time")]
public string? SaleTime { get; set; }
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
[JsonPropertyName("sc_money")]
public string ScMoney { get; set; } = "0";
[JsonPropertyName("real_pro")]
public string RealPro { get; set; } = "0";
[JsonPropertyName("pro")]
public string Pro { get; set; } = "0";
[JsonPropertyName("pro_num")]
public string ProNum { get; set; } = "0";
[JsonPropertyName("shang_info")]
public ShangInfoDto? ShangInfo { get; set; }
}
///
/// 商品扩展配置DTO
///
public class GoodsExtendDto
{
[JsonPropertyName("pay_wechat")]
public int PayWechat { get; set; }
[JsonPropertyName("pay_balance")]
public int PayBalance { get; set; }
[JsonPropertyName("pay_currency")]
public int PayCurrency { get; set; }
[JsonPropertyName("pay_currency2")]
public int PayCurrency2 { get; set; }
[JsonPropertyName("pay_coupon")]
public int PayCoupon { get; set; }
[JsonPropertyName("is_deduction")]
public int IsDeduction { get; set; }
}
///
/// 箱号分组DTO
///
public class BoxGroupDto
{
///
/// 显示标题,如 "1-10"
///
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
///
/// 页码(从0开始)
///
[JsonPropertyName("page_no")]
public int PageNo { get; set; }
}
///
/// 箱号详情DTO
///
public class BoxDetailDto
{
[JsonPropertyName("num")]
public int Num { get; set; }
[JsonPropertyName("surplus_all_stock")]
public int SurplusAllStock { get; set; }
[JsonPropertyName("goodslist")]
public List GoodsList { get; set; } = new();
}
///
/// 箱号商品列表DTO
///
public class BoxGoodsListDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("shang_info")]
public ShangInfoDto? ShangInfo { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("surplus_stock")]
public int SurplusStock { get; set; }
[JsonPropertyName("stock")]
public int Stock { get; set; }
}
#endregion
#region Collection Models
///
/// 收藏请求
///
public class CollectionRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 箱号
///
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
///
/// 操作类型: add=收藏, remove=取消收藏
///
[JsonPropertyName("action")]
public string Action { get; set; } = "add";
}
///
/// 收藏列表请求
///
public class CollectionListRequest : PageRequest
{
///
/// 商品类型 (0=全部)
///
[JsonPropertyName("type")]
public int Type { get; set; } = 0;
}
///
/// 收藏列表响应 (兼容PHP API格式)
///
public class CollectionListResponse
{
[JsonPropertyName("data")]
public List Data { get; set; } = new();
[JsonPropertyName("last_page")]
public int LastPage { get; set; }
}
///
/// 收藏DTO (兼容PHP API格式)
///
public class CollectionDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
[JsonPropertyName("num")]
public int Num { get; set; }
[JsonPropertyName("goods_title")]
public string GoodsTitle { get; set; } = string.Empty;
[JsonPropertyName("goods_price")]
public string GoodsPrice { get; set; } = "0";
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
[JsonPropertyName("stock")]
public int Stock { get; set; }
[JsonPropertyName("surplus_stock")]
public int SurplusStock { get; set; }
}
///
/// 删除收藏请求
///
public class DeleteCollectionRequest
{
///
/// 收藏记录ID
///
[JsonPropertyName("id")]
public int Id { get; set; }
}
///
/// 取消收藏请求 (通过商品ID)
///
public class CancelCollectionRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
///
/// 收藏状态查询请求
///
///
/// 用于查询指定商品是否已被当前用户收藏
/// 此接口从商品详情接口(goods_detail)中拆分出来
///
public class CollectionStatusRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 箱号
///
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
}
///
/// 收藏状态响应
///
public class CollectionStatusResponse
{
///
/// 是否已收藏: 0=未收藏, 1=已收藏
///
[JsonPropertyName("collection_is")]
public int CollectionIs { get; set; }
}
#endregion
#region Prize Statistics Models
///
/// 奖品数量统计响应
///
public class PrizeCountResponseDto
{
[JsonPropertyName("list")]
public List List { get; set; } = new();
[JsonPropertyName("total")]
public int Total { get; set; }
[JsonPropertyName("surplus")]
public int Surplus { get; set; }
}
///
/// 奖品数量统计项DTO
///
public class PrizeCountItemDto
{
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("shang_info")]
public ShangInfoDto? ShangInfo { get; set; }
[JsonPropertyName("total")]
public int Total { get; set; }
[JsonPropertyName("surplus")]
public int Surplus { get; set; }
}
///
/// 奖品内容响应
///
public class PrizeContentResponseDto
{
[JsonPropertyName("list")]
public List List { get; set; } = new();
}
#endregion
#region Prize Logs Models
///
/// 中奖记录响应
///
public class PrizeLogsResponseDto
{
[JsonPropertyName("category")]
public List Category { get; set; } = new();
[JsonPropertyName("data")]
public List Data { get; set; } = new();
[JsonPropertyName("last_page")]
public int LastPage { get; set; }
[JsonPropertyName("total")]
public int Total { get; set; }
}
///
/// 分类DTO - 用于中奖记录筛选
///
public class CategoryDto
{
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("shang_title")]
public string ShangTitle { get; set; } = string.Empty;
}
///
/// 中奖记录DTO - 匹配PHP API响应格式
///
public class PrizeLogDto
{
[JsonPropertyName("user_id")]
public int UserId { get; set; }
[JsonPropertyName("goodslist_title")]
public string GoodslistTitle { get; set; } = string.Empty;
[JsonPropertyName("goodslist_imgurl")]
public string GoodslistImgurl { get; set; } = string.Empty;
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("addtime")]
public string Addtime { get; set; } = string.Empty;
[JsonPropertyName("prize_num")]
public int PrizeNum { get; set; }
[JsonPropertyName("shang_title")]
public string ShangTitle { get; set; } = string.Empty;
[JsonPropertyName("user_info")]
public PrizeLogUserDto? UserInfo { get; set; }
[JsonPropertyName("shang_color")]
public string ShangColor { get; set; } = string.Empty;
}
///
/// 中奖记录用户信息DTO
///
public class PrizeLogUserDto
{
[JsonPropertyName("nickname")]
public string Nickname { get; set; } = string.Empty;
[JsonPropertyName("headimg")]
public string HeadImg { get; set; } = string.Empty;
}
#endregion
#region Infinite Goods Detail Models
///
/// 无限赏商品详情请求
///
public class InfiniteGoodsDetailRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
///
/// 无限赏商品详情响应
///
public class InfiniteGoodsDetailResponseDto
{
///
/// 商品信息
///
[JsonPropertyName("goods")]
public InfiniteGoodsInfoDto Goods { get; set; } = new();
///
/// 赏池分类列表
///
[JsonPropertyName("goodslist")]
public List GoodsList { get; set; } = new();
///
/// 奖品列表
///
[JsonPropertyName("goods_list")]
public List GoodsListItems { get; set; } = new();
///
/// 优惠券数量
///
[JsonPropertyName("draw_num")]
public int DrawNum { get; set; }
///
/// 单页ID
///
[JsonPropertyName("danye_id")]
public int DanyeId { get; set; }
///
/// 限购信息
///
[JsonPropertyName("limitInfo")]
public LimitInfoDto LimitInfo { get; set; } = new();
}
///
/// 无限赏商品信息DTO
///
public class InfiniteGoodsInfoDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("imgurl_detail")]
public string ImgUrlDetail { get; set; } = string.Empty;
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
[JsonPropertyName("stock")]
public int Stock { get; set; }
[JsonPropertyName("sale_stock")]
public int SaleStock { get; set; }
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
[JsonPropertyName("type_text")]
public string? TypeText { get; set; }
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("addtime")]
public string? Addtime { get; set; }
[JsonPropertyName("rage_is")]
public int RageIs { get; set; }
[JsonPropertyName("rage")]
public int Rage { get; set; }
[JsonPropertyName("item_card_id")]
public int ItemCardId { get; set; }
[JsonPropertyName("lingzhu_is")]
public int LingzhuIs { get; set; }
[JsonPropertyName("lingzhu_shang_id")]
public int LingzhuShangId { get; set; }
[JsonPropertyName("is_shou_zhe")]
public int IsShouZhe { get; set; }
[JsonPropertyName("daily_xiangou")]
public int DailyXiangou { get; set; }
[JsonPropertyName("quanju_xiangou")]
public int QuanjuXiangou { get; set; }
[JsonPropertyName("item_card")]
public ItemCardDto? ItemCard { get; set; }
[JsonPropertyName("user_rage_schedule")]
public int UserRageSchedule { get; set; }
[JsonPropertyName("user_rage")]
public int UserRage { get; set; }
[JsonPropertyName("item_card_info")]
public string? ItemCardInfo { get; set; }
[JsonPropertyName("need_draw_num")]
public int NeedDrawNum { get; set; }
[JsonPropertyName("join_user")]
public List JoinUser { get; set; } = new();
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
[JsonPropertyName("collection_is")]
public int CollectionIs { get; set; }
}
///
/// 道具卡DTO
///
public class ItemCardDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
}
///
/// 无限赏赏池分类DTO
///
public class InfiniteGoodsPoolDto
{
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("pro")]
public string Pro { get; set; } = "0";
[JsonPropertyName("shang_title")]
public string ShangTitle { get; set; } = string.Empty;
[JsonPropertyName("shang_imgurl")]
public string? ShangImgUrl { get; set; }
[JsonPropertyName("shang_color")]
public string? ShangColor { get; set; }
[JsonPropertyName("lingzhu_shang_id")]
public int LingzhuShangId { get; set; }
[JsonPropertyName("goods_list")]
public List GoodsList { get; set; } = new();
}
///
/// 无限赏奖品项DTO
///
public class InfiniteGoodsItemDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
[JsonPropertyName("real_pro")]
public string RealPro { get; set; } = "0";
[JsonPropertyName("sc_money")]
public string ScMoney { get; set; } = "0";
[JsonPropertyName("goods_type")]
public int GoodsType { get; set; }
[JsonPropertyName("sale_time")]
public string? SaleTime { get; set; }
[JsonPropertyName("doubling")]
public int Doubling { get; set; }
[JsonPropertyName("shang_title")]
public string ShangTitle { get; set; } = string.Empty;
[JsonPropertyName("shang_imgurl")]
public string? ShangImgUrl { get; set; }
[JsonPropertyName("shang_color")]
public string? ShangColor { get; set; }
[JsonPropertyName("is_lingzhu")]
public int IsLingzhu { get; set; }
}
#endregion
#region Combo Goods Detail Models (连击赏)
///
/// 连击赏商品详情请求
///
public class ComboGoodsDetailRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 类型: 0=普通池, 1=秘宝池
///
[JsonPropertyName("type")]
public int Type { get; set; } = 1;
}
///
/// 连击赏商品详情响应
///
public class ComboGoodsDetailResponseDto
{
///
/// 商品信息
///
[JsonPropertyName("goods")]
public ComboGoodsInfoDto Goods { get; set; } = new();
///
/// 赏池分类列表
///
[JsonPropertyName("goodslist")]
public List GoodsList { get; set; } = new();
///
/// 奖品列表
///
[JsonPropertyName("goods_list")]
public List GoodsListItems { get; set; } = new();
///
/// 优惠券数量
///
[JsonPropertyName("draw_num")]
public int DrawNum { get; set; }
}
///
/// 连击赏商品信息DTO
///
public class ComboGoodsInfoDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("imgurl_detail")]
public string ImgUrlDetail { get; set; } = string.Empty;
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
[JsonPropertyName("stock")]
public int Stock { get; set; }
[JsonPropertyName("sale_stock")]
public int SaleStock { get; set; }
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("addtime")]
public string? Addtime { get; set; }
[JsonPropertyName("lian_ji_num")]
public int LianJiNum { get; set; }
[JsonPropertyName("lian_ji_shang_id")]
public int LianJiShangId { get; set; }
[JsonPropertyName("is_shou_zhe")]
public int IsShouZhe { get; set; }
[JsonPropertyName("max_fa")]
public int MaxFa { get; set; }
[JsonPropertyName("user_mb_number")]
public int UserMbNumber { get; set; }
[JsonPropertyName("user_lian_ji_number")]
public int UserLianJiNumber { get; set; }
[JsonPropertyName("collection_is")]
public int CollectionIs { get; set; }
[JsonPropertyName("join_user")]
public List JoinUser { get; set; } = new();
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
}
#endregion
#region Shang Log Models (中奖记录)
///
/// 一番赏中奖记录请求
///
public class ShangLogRequest : PageRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 箱号
///
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
///
/// 赏品分类ID (0表示全部)
///
[JsonPropertyName("shang_id")]
public int ShangId { get; set; } = 0;
}
///
/// 一番赏中奖记录响应
///
public class ShangLogResponseDto
{
///
/// 分类列表
///
[JsonPropertyName("category")]
public List Category { get; set; } = new();
///
/// 中奖记录列表
///
[JsonPropertyName("data")]
public List Data { get; set; } = new();
///
/// 最后一页
///
[JsonPropertyName("last_page")]
public int LastPage { get; set; }
}
///
/// 中奖记录项DTO
///
public class ShangLogItemDto
{
[JsonPropertyName("user_id")]
public int UserId { get; set; }
[JsonPropertyName("goodslist_title")]
public string GoodslistTitle { get; set; } = string.Empty;
[JsonPropertyName("goodslist_imgurl")]
public string GoodslistImgurl { get; set; } = string.Empty;
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("addtime")]
public string Addtime { get; set; } = string.Empty;
[JsonPropertyName("prize_num")]
public int PrizeNum { get; set; }
[JsonPropertyName("shang_title")]
public string ShangTitle { get; set; } = string.Empty;
[JsonPropertyName("user_info")]
public PrizeLogUserDto? UserInfo { get; set; }
[JsonPropertyName("shang_color")]
public string ShangColor { get; set; } = string.Empty;
[JsonPropertyName("luck_no")]
public int LuckNo { get; set; }
[JsonPropertyName("doubling")]
public int Doubling { get; set; }
[JsonPropertyName("is_lingzhu")]
public int IsLingzhu { get; set; }
}
#endregion
#region Ling Zhu King Models (领主王)
///
/// 领主王数据请求
///
public class LingZhuKingRequest
{
///
/// 商品ID
///
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
///
/// 类型: 1=挑战人数, 2=领主记录
///
[JsonPropertyName("type")]
public int Type { get; set; } = 1;
}
///
/// 领主王数据响应
///
public class LingZhuKingResponseDto
{
///
/// 商品信息
///
[JsonPropertyName("goods")]
public LingZhuGoodsDto? Goods { get; set; }
///
/// 当前领主用户信息
///
[JsonPropertyName("king_user")]
public LingZhuKingUserDto? KingUser { get; set; }
///
/// 挑战者列表或领主记录
///
[JsonPropertyName("list")]
public PageResponse List { get; set; } = new();
///
/// 领主奖品列表
///
[JsonPropertyName("ling_goods_list")]
public List LingGoodsList { get; set; } = new();
}
///
/// 领主商品信息DTO
///
public class LingZhuGoodsDto
{
[JsonPropertyName("king_user_id")]
public int KingUserId { get; set; }
[JsonPropertyName("lingzhu_fan")]
public int LingzhuFan { get; set; }
[JsonPropertyName("lingzhu_shang_id")]
public int LingzhuShangId { get; set; }
}
///
/// 领主用户信息DTO
///
public class LingZhuKingUserDto
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("nickname")]
public string Nickname { get; set; } = string.Empty;
[JsonPropertyName("headimg")]
public string HeadImg { get; set; } = string.Empty;
[JsonPropertyName("jiang_title")]
public string JiangTitle { get; set; } = string.Empty;
[JsonPropertyName("jiang_img")]
public string JiangImg { get; set; } = string.Empty;
[JsonPropertyName("count")]
public int Count { get; set; }
[JsonPropertyName("z_nums")]
public int ZNums { get; set; }
}
///
/// 领主列表项DTO
///
public class LingZhuListItemDto
{
[JsonPropertyName("user_id")]
public int UserId { get; set; }
[JsonPropertyName("nickname")]
public string Nickname { get; set; } = string.Empty;
[JsonPropertyName("headimg")]
public string HeadImg { get; set; } = string.Empty;
[JsonPropertyName("addtime")]
public long? Addtime { get; set; }
[JsonPropertyName("end_time")]
public long? EndTime { get; set; }
[JsonPropertyName("time")]
public string? Time { get; set; }
}
///
/// 领主奖品项DTO
///
public class LingZhuGoodsItemDto
{
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
[JsonPropertyName("shang_info")]
public ShangInfoDto? ShangInfo { get; set; }
}
#endregion