package com.jeesharp.business.modules.mall.vo;

import com.jeesharp.framework.pojo.query.PaginationVO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * 订单查询VO
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MallOrderQueryVO extends PaginationVO {

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 全站统一单 ID（对应 {@code biz_trade_order.id}，M5）
     */
    private String unifiedOrderId;

    /**
     * 合并支付批次ID
     */
    private String payBatchId;

    /**
     * 会员主键（精确，兼容）
     */
    private String memberId;

    /**
     * 会员姓名/昵称/手机/编号（管理端筛选；Application 解析为 {@link #memberIdIn}）
     */
    private String memberKeyword;

    /**
     * 会员主键 IN（内部）
     */
    private List<String> memberIdIn;

    /**
     * 订单状态筛选，取值见 {@link com.jeesharp.business.modules.mall.enums.MallOrderStatusEnum}
     */
    private Integer status;

    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;

    /**
     * 优惠券抵扣
     */
    private BigDecimal couponAmount;

    /**
     * 积分抵扣金额
     */
    private BigDecimal pointsAmount;

    /**
     * 金币抵扣金额
     */
    private BigDecimal coinsAmount;

    /**
     * 账户余额支付金额
     */
    private BigDecimal balanceAmount;

    /**
     * 运费金额
     */
    private BigDecimal freightAmount;

    /**
     * 实付金额
     */
    private BigDecimal payAmount;

    /**
     * 使用积分数
     */
    private Integer pointsUsed;

    /**
     * 使用金币数
     */
    private Integer coinsUsed;

    /**
     * 买家留言
     */
    private String buyerRemark;

    /**
     * 商家备注
     */
    private String adminRemark;

    /**
     * 发票类型：0-不开票 1-个人 2-企业
     */
    private Integer invoiceType;

    /**
     * 发票抬头
     */
    private String invoiceTitle;

    /**
     * 税号
     */
    private String invoiceTaxNo;

    /**
     * 改价前金额（改价时记录）
     */
    private BigDecimal priceBeforeChange;

    /**
     * 配送方式：DELIVERY-配送 PICKUP-到店自提
     */
    private String deliveryType;

    /**
     * 自提点ID（到店自提时）
     */
    private String pickupPointId;

    /**
     * 期望自提时间
     */
    private Date pickupTime;

    /**
     * 自提核销码
     */
    private String pickupVerifyCode;

    /**
     * 自提核销时间
     */
    private Date pickupVerifyTime;

    /**
     * 支付方式
     */
    private String payType;

    /**
     * 支付时间（精确，兼容）
     */
    private Date payTime;

    /**
     * 支付时间起
     */
    private LocalDateTime payTimeStart;

    /**
     * 支付时间止
     */
    private LocalDateTime payTimeEnd;

    /**
     * 收货人
     */
    private String receiverName;

    /**
     * 收货手机
     */
    private String receiverMobile;

    /**
     * 省
     */
    private String receiverProvince;

    /**
     * 市
     */
    private String receiverCity;

    /**
     * 区
     */
    private String receiverDistrict;

    /**
     * 详细地址
     */
    private String receiverAddress;

    /**
     * 物流公司
     */
    private String logisticsCompany;

    /**
     * 运单号
     */
    private String logisticsNo;

    /**
     * 发货时间
     */
    private Date shipTime;

    /**
     * 确认收货时间
     */
    private Date confirmTime;

    /**
     * 创建时间开始
     */
    private LocalDateTime createDateStart;

    /**
     * 创建时间结束
     */
    private LocalDateTime createDateEnd;
}