HaniBlindBox/server/HoneyBox/src/HoneyBox.Model/Models/Goods/GoodsModels.cs
2026-02-28 00:08:06 +08:00

1574 lines
36 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Text.Json.Serialization;
using HoneyBox.Model.Models;
using Microsoft.AspNetCore.Mvc;
namespace HoneyBox.Model.Models.Goods;
#region Request Models
/// <summary>
/// 商品列表请求
/// </summary>
public class GoodsListRequest : PageRequest
{
/// <summary>
/// 分类ID
/// </summary>
public int? CategoryId { get; set; }
/// <summary>
/// 商品类型 (-1表示全部)
/// </summary>
[JsonPropertyName("type")]
public int Type { get; set; } = -1;
}
/// <summary>
/// 商品详情请求
/// </summary>
public class GoodsDetailRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号 (0表示自动选择)
/// </summary>
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; } = 0;
}
/// <summary>
/// 商品子奖品请求
/// </summary>
public class GoodsChildrenRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
/// <summary>
/// 奖品列表ID
/// </summary>
[JsonPropertyName("goods_list_id")]
public int GoodsListId { get; set; }
}
/// <summary>
/// 商品扩展配置请求
/// </summary>
public class GoodsExtendRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 商品类型
/// </summary>
[JsonPropertyName("goods_type")]
public int GoodsType { get; set; }
}
/// <summary>
/// 箱号列表请求
/// </summary>
public class BoxListRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
/// <summary>
/// 箱号详情请求
/// </summary>
public class BoxDetailRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 页码 (每页10个箱号)
/// </summary>
[JsonPropertyName("page_no")]
public int PageNo { get; set; } = 0;
/// <summary>
/// 排序方式: 0=箱号升序, 1=箱号降序, 2=余量降序
/// </summary>
[JsonPropertyName("sort")]
public int Sort { get; set; } = 0;
}
/// <summary>
/// 奖品数量统计请求
/// </summary>
public class PrizeCountRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
/// <summary>
/// 奖品内容请求
/// </summary>
public class PrizeContentRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[JsonPropertyName("num")]
public int Num { get; set; }
}
/// <summary>
/// 中奖记录请求
/// </summary>
public class PrizeLogsRequest : PageRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
[FromQuery(Name = "goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[JsonPropertyName("goods_num")]
[FromQuery(Name = "goods_num")]
public int GoodsNum { get; set; }
/// <summary>
/// 赏品分类ID (null或0表示全部)
/// </summary>
[JsonPropertyName("shang_id")]
[FromQuery(Name = "shang_id")]
public int? ShangId { get; set; }
}
#endregion
#region Response/DTO Models
/// <summary>
/// 商品列表项DTO (兼容PHP API snake_case格式)
/// </summary>
public class GoodsListDto
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("id")]
public int Id { get; set; }
/// <summary>
/// 商品标题
/// </summary>
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 商品图片URL
/// </summary>
[JsonPropertyName("imgurl")]
public string ImgUrl { get; set; } = string.Empty;
/// <summary>
/// 商品价格
/// </summary>
[JsonPropertyName("price")]
public string Price { get; set; } = "0";
/// <summary>
/// 商品类型
/// </summary>
[JsonPropertyName("type")]
public int Type { get; set; }
/// <summary>
/// 类型文字
/// </summary>
[JsonPropertyName("type_text")]
public string TypeText { get; set; } = string.Empty;
/// <summary>
/// 总库存
/// </summary>
[JsonPropertyName("stock")]
public int Stock { get; set; }
/// <summary>
/// 已售库存
/// </summary>
[JsonPropertyName("sale_stock")]
public int SaleStock { get; set; }
/// <summary>
/// 状态
/// </summary>
[JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 是否锁定
/// </summary>
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
/// <summary>
/// 是否首折
/// </summary>
[JsonPropertyName("is_shou_zhe")]
public int IsShouZhe { get; set; }
/// <summary>
/// 是否新品
/// </summary>
[JsonPropertyName("new_is")]
public int NewIs { get; set; }
/// <summary>
/// 参与次数
/// </summary>
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
/// <summary>
/// 需要抽奖次数
/// </summary>
[JsonPropertyName("need_draw_num")]
public int NeedDrawNum { get; set; }
/// <summary>
/// 显示价格
/// </summary>
[JsonPropertyName("show_price")]
public string? ShowPrice { get; set; }
/// <summary>
/// 角标文字
/// </summary>
[JsonPropertyName("corner_text")]
public string? CornerText { get; set; }
}
/// <summary>
/// 商品信息DTO
/// </summary>
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";
}
/// <summary>
/// 商品详情响应
/// </summary>
public class GoodsDetailResponseDto
{
/// <summary>
/// 商品信息
/// </summary>
[JsonPropertyName("goods")]
public GoodsInfoDto Goods { get; set; } = new();
/// <summary>
/// 锁箱信息
/// </summary>
[JsonPropertyName("lock_info")]
public LockInfoDto LockInfo { get; set; } = new();
/// <summary>
/// 参与用户头像列表
/// </summary>
[JsonPropertyName("join_user")]
public List<string> JoinUser { get; set; } = new();
/// <summary>
/// 参与次数
/// </summary>
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
/// <summary>
/// 奖品列表
/// </summary>
[JsonPropertyName("goodslist")]
public List<GoodsListItemDto> GoodsList { get; set; } = new();
/// <summary>
/// 限购信息
/// </summary>
[JsonPropertyName("limit_info")]
public LimitInfoDto LimitInfo { get; set; } = new();
}
/// <summary>
/// 锁箱信息DTO
/// </summary>
public class LockInfoDto
{
/// <summary>
/// 是否锁定
/// </summary>
[JsonPropertyName("lock_is")]
public int LockIs { get; set; }
/// <summary>
/// 锁定用户昵称
/// </summary>
[JsonPropertyName("goods_lock_user_nickname")]
public string? GoodsLockUserNickname { get; set; }
/// <summary>
/// 锁定用户头像
/// </summary>
[JsonPropertyName("goods_lock_user_headimg")]
public string? GoodsLockUserHeadimg { get; set; }
/// <summary>
/// 锁箱剩余时间 (Unix时间戳)
/// </summary>
[JsonPropertyName("goods_lock_surplus_time")]
public long GoodsLockSurplusTime { get; set; }
}
/// <summary>
/// 限购信息DTO
/// </summary>
public class LimitInfoDto
{
/// <summary>
/// 每日限购数量
/// </summary>
[JsonPropertyName("daily_xiangou")]
public int DailyXiangou { get; set; }
/// <summary>
/// 今日已购数量
/// </summary>
[JsonPropertyName("daily_bought")]
public int DailyBought { get; set; }
/// <summary>
/// 今日剩余可购数量
/// </summary>
[JsonPropertyName("daily_remaining")]
public int DailyRemaining { get; set; }
/// <summary>
/// 全局限购数量
/// </summary>
[JsonPropertyName("quanju_xiangou")]
public int QuanjuXiangou { get; set; }
/// <summary>
/// 全局已购数量
/// </summary>
[JsonPropertyName("global_bought")]
public int GlobalBought { get; set; }
/// <summary>
/// 全局剩余可购数量
/// </summary>
[JsonPropertyName("global_remaining")]
public int GlobalRemaining { get; set; }
/// <summary>
/// 是否测试用户
/// </summary>
[JsonPropertyName("user_test")]
public int UserTest { get; set; }
}
/// <summary>
/// 奖品列表项DTO
/// </summary>
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";
}
/// <summary>
/// 赏品等级信息DTO
/// </summary>
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; }
}
/// <summary>
/// 子奖品DTO
/// </summary>
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; }
}
/// <summary>
/// 商品扩展配置DTO
/// </summary>
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; }
}
/// <summary>
/// 箱号分组DTO
/// </summary>
public class BoxGroupDto
{
/// <summary>
/// 显示标题,如 "1-10"
/// </summary>
[JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 页码从0开始
/// </summary>
[JsonPropertyName("page_no")]
public int PageNo { get; set; }
}
/// <summary>
/// 箱号详情DTO
/// </summary>
public class BoxDetailDto
{
[JsonPropertyName("num")]
public int Num { get; set; }
[JsonPropertyName("surplus_all_stock")]
public int SurplusAllStock { get; set; }
[JsonPropertyName("goodslist")]
public List<BoxGoodsListDto> GoodsList { get; set; } = new();
}
/// <summary>
/// 箱号商品列表DTO
/// </summary>
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
/// <summary>
/// 收藏请求
/// </summary>
public class CollectionRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
/// <summary>
/// 操作类型: add=收藏, remove=取消收藏
/// </summary>
[JsonPropertyName("action")]
public string Action { get; set; } = "add";
}
/// <summary>
/// 收藏列表请求
/// </summary>
public class CollectionListRequest : PageRequest
{
/// <summary>
/// 商品类型 (0=全部)
/// </summary>
[JsonPropertyName("type")]
public int Type { get; set; } = 0;
}
/// <summary>
/// 收藏列表响应 (兼容PHP API格式)
/// </summary>
public class CollectionListResponse
{
[JsonPropertyName("data")]
public List<CollectionDto> Data { get; set; } = new();
[JsonPropertyName("last_page")]
public int LastPage { get; set; }
}
/// <summary>
/// 收藏DTO (兼容PHP API格式)
/// </summary>
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; }
}
/// <summary>
/// 删除收藏请求
/// </summary>
public class DeleteCollectionRequest
{
/// <summary>
/// 收藏记录ID
/// </summary>
[JsonPropertyName("id")]
public int Id { get; set; }
}
/// <summary>
/// 取消收藏请求 (通过商品ID)
/// </summary>
public class CancelCollectionRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
/// <summary>
/// 收藏状态查询请求
/// </summary>
/// <remarks>
/// 用于查询指定商品是否已被当前用户收藏
/// 此接口从商品详情接口(goods_detail)中拆分出来
/// </remarks>
public class CollectionStatusRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
}
/// <summary>
/// 收藏状态响应
/// </summary>
public class CollectionStatusResponse
{
/// <summary>
/// 是否已收藏: 0=未收藏, 1=已收藏
/// </summary>
[JsonPropertyName("collection_is")]
public int CollectionIs { get; set; }
}
#endregion
#region Prize Statistics Models
/// <summary>
/// 奖品数量统计响应
/// </summary>
public class PrizeCountResponseDto
{
[JsonPropertyName("list")]
public List<PrizeCountItemDto> List { get; set; } = new();
[JsonPropertyName("total")]
public int Total { get; set; }
[JsonPropertyName("surplus")]
public int Surplus { get; set; }
}
/// <summary>
/// 奖品数量统计项DTO
/// </summary>
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; }
}
/// <summary>
/// 奖品内容响应
/// </summary>
public class PrizeContentResponseDto
{
[JsonPropertyName("list")]
public List<GoodsListItemDto> List { get; set; } = new();
}
#endregion
#region Prize Logs Models
/// <summary>
/// 中奖记录响应
/// </summary>
public class PrizeLogsResponseDto
{
[JsonPropertyName("category")]
public List<CategoryDto> Category { get; set; } = new();
[JsonPropertyName("data")]
public List<PrizeLogDto> Data { get; set; } = new();
[JsonPropertyName("last_page")]
public int LastPage { get; set; }
[JsonPropertyName("total")]
public int Total { get; set; }
}
/// <summary>
/// 分类DTO - 用于中奖记录筛选
/// </summary>
public class CategoryDto
{
[JsonPropertyName("shang_id")]
public int ShangId { get; set; }
[JsonPropertyName("shang_title")]
public string ShangTitle { get; set; } = string.Empty;
}
/// <summary>
/// 中奖记录DTO - 匹配PHP API响应格式
/// </summary>
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;
}
/// <summary>
/// 中奖记录用户信息DTO
/// </summary>
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
/// <summary>
/// 无限赏商品详情请求
/// </summary>
public class InfiniteGoodsDetailRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
}
/// <summary>
/// 无限赏商品详情响应
/// </summary>
public class InfiniteGoodsDetailResponseDto
{
/// <summary>
/// 商品信息
/// </summary>
[JsonPropertyName("goods")]
public InfiniteGoodsInfoDto Goods { get; set; } = new();
/// <summary>
/// 赏池分类列表
/// </summary>
[JsonPropertyName("goodslist")]
public List<InfiniteGoodsPoolDto> GoodsList { get; set; } = new();
/// <summary>
/// 奖品列表
/// </summary>
[JsonPropertyName("goods_list")]
public List<InfiniteGoodsItemDto> GoodsListItems { get; set; } = new();
/// <summary>
/// 优惠券数量
/// </summary>
[JsonPropertyName("draw_num")]
public int DrawNum { get; set; }
/// <summary>
/// 单页ID
/// </summary>
[JsonPropertyName("danye_id")]
public int DanyeId { get; set; }
/// <summary>
/// 限购信息
/// </summary>
[JsonPropertyName("limitInfo")]
public LimitInfoDto LimitInfo { get; set; } = new();
}
/// <summary>
/// 无限赏商品信息DTO
/// </summary>
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<string> JoinUser { get; set; } = new();
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
[JsonPropertyName("collection_is")]
public int CollectionIs { get; set; }
}
/// <summary>
/// 道具卡DTO
/// </summary>
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;
}
/// <summary>
/// 无限赏赏池分类DTO
/// </summary>
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<InfiniteGoodsItemDto> GoodsList { get; set; } = new();
}
/// <summary>
/// 无限赏奖品项DTO
/// </summary>
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 ()
/// <summary>
/// 连击赏商品详情请求
/// </summary>
public class ComboGoodsDetailRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 类型: 0=普通池, 1=秘宝池
/// </summary>
[JsonPropertyName("type")]
public int Type { get; set; } = 1;
}
/// <summary>
/// 连击赏商品详情响应
/// </summary>
public class ComboGoodsDetailResponseDto
{
/// <summary>
/// 商品信息
/// </summary>
[JsonPropertyName("goods")]
public ComboGoodsInfoDto Goods { get; set; } = new();
/// <summary>
/// 赏池分类列表
/// </summary>
[JsonPropertyName("goodslist")]
public List<InfiniteGoodsPoolDto> GoodsList { get; set; } = new();
/// <summary>
/// 奖品列表
/// </summary>
[JsonPropertyName("goods_list")]
public List<InfiniteGoodsItemDto> GoodsListItems { get; set; } = new();
/// <summary>
/// 优惠券数量
/// </summary>
[JsonPropertyName("draw_num")]
public int DrawNum { get; set; }
}
/// <summary>
/// 连击赏商品信息DTO
/// </summary>
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<string> JoinUser { get; set; } = new();
[JsonPropertyName("join_count")]
public int JoinCount { get; set; }
}
#endregion
#region Shang Log Models ()
/// <summary>
/// 一番赏中奖记录请求
/// </summary>
public class ShangLogRequest : PageRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[JsonPropertyName("goods_num")]
public int GoodsNum { get; set; }
/// <summary>
/// 赏品分类ID (0表示全部)
/// </summary>
[JsonPropertyName("shang_id")]
public int ShangId { get; set; } = 0;
}
/// <summary>
/// 一番赏中奖记录响应
/// </summary>
public class ShangLogResponseDto
{
/// <summary>
/// 分类列表
/// </summary>
[JsonPropertyName("category")]
public List<CategoryDto> Category { get; set; } = new();
/// <summary>
/// 中奖记录列表
/// </summary>
[JsonPropertyName("data")]
public List<ShangLogItemDto> Data { get; set; } = new();
/// <summary>
/// 最后一页
/// </summary>
[JsonPropertyName("last_page")]
public int LastPage { get; set; }
}
/// <summary>
/// 中奖记录项DTO
/// </summary>
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 ()
/// <summary>
/// 领主王数据请求
/// </summary>
public class LingZhuKingRequest
{
/// <summary>
/// 商品ID
/// </summary>
[JsonPropertyName("goods_id")]
public int GoodsId { get; set; }
/// <summary>
/// 类型: 1=挑战人数, 2=领主记录
/// </summary>
[JsonPropertyName("type")]
public int Type { get; set; } = 1;
}
/// <summary>
/// 领主王数据响应
/// </summary>
public class LingZhuKingResponseDto
{
/// <summary>
/// 商品信息
/// </summary>
[JsonPropertyName("goods")]
public LingZhuGoodsDto? Goods { get; set; }
/// <summary>
/// 当前领主用户信息
/// </summary>
[JsonPropertyName("king_user")]
public LingZhuKingUserDto? KingUser { get; set; }
/// <summary>
/// 挑战者列表或领主记录
/// </summary>
[JsonPropertyName("list")]
public PageResponse<LingZhuListItemDto> List { get; set; } = new();
/// <summary>
/// 领主奖品列表
/// </summary>
[JsonPropertyName("ling_goods_list")]
public List<LingZhuGoodsItemDto> LingGoodsList { get; set; } = new();
}
/// <summary>
/// 领主商品信息DTO
/// </summary>
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; }
}
/// <summary>
/// 领主用户信息DTO
/// </summary>
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; }
}
/// <summary>
/// 领主列表项DTO
/// </summary>
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; }
}
/// <summary>
/// 领主奖品项DTO
/// </summary>
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