using System;
using System.Collections.Generic;

namespace HoneyBox.Model.Entities;

/// <summary>
/// 订单发货记录表，存储用户申请发货的汇总信息
/// </summary>
public partial class OrderItemsSend
{
    /// <summary>
    /// 发货记录ID，主键自增
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public int UserId { get; set; }

    /// <summary>
    /// 发货单号，唯一
    /// </summary>
    public string SendNum { get; set; } = null!;

    /// <summary>
    /// 运费
    /// </summary>
    public decimal Freight { get; set; }

    /// <summary>
    /// 状态：0待支付，1待发货，2已发货，3已签收，4已取消
    /// </summary>
    public byte Status { get; set; }

    /// <summary>
    /// 发货奖品数量
    /// </summary>
    public int Count { get; set; }

    /// <summary>
    /// 收货人姓名
    /// </summary>
    public string? Name { get; set; }

    /// <summary>
    /// 收货人手机号
    /// </summary>
    public string? Mobile { get; set; }

    /// <summary>
    /// 收货地址
    /// </summary>
    public string? Address { get; set; }

    /// <summary>
    /// 留言备注
    /// </summary>
    public string? Message { get; set; }

    /// <summary>
    /// 快递单号
    /// </summary>
    public string? CourierNumber { get; set; }

    /// <summary>
    /// 快递公司名称
    /// </summary>
    public string? CourierName { get; set; }

    /// <summary>
    /// 快递公司编码
    /// </summary>
    public string? CourierCode { get; set; }

    /// <summary>
    /// 物流信息JSON
    /// </summary>
    public string? DeliveryList { get; set; }

    /// <summary>
    /// 物流状态：-1未查询，0在途，1揽收，2疑难，3签收，4退签，5派件，6退回
    /// </summary>
    public int DeliveryStatus { get; set; }

    /// <summary>
    /// 物流更新时间戳
    /// </summary>
    public int DeliveryTime { get; set; }

    /// <summary>
    /// 创建时间戳
    /// </summary>
    public int Addtime { get; set; }

    /// <summary>
    /// 支付时间戳
    /// </summary>
    public int PayTime { get; set; }

    /// <summary>
    /// 发货时间戳
    /// </summary>
    public int SendTime { get; set; }

    /// <summary>
    /// 签收时间戳
    /// </summary>
    public int ShouTime { get; set; }

    /// <summary>
    /// 取消时间戳
    /// </summary>
    public int CancelTime { get; set; }

    /// <summary>
    /// 操作管理员ID
    /// </summary>
    public int AdminId { get; set; }

    /// <summary>
    /// 记录创建时间
    /// </summary>
    public DateTime CreatedAt { get; set; }

    /// <summary>
    /// 记录更新时间
    /// </summary>
    public DateTime UpdatedAt { get; set; }
}
