package com.hzs.sale.order.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @description: 订单自提VO
 * @author: zhang jing
 * @date: 2023/5/29 14:56
 * @param:
 * @return:
 **/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class OrderSelfPickupVO {

    /**
     * 订单id
     */
    private Long pkId;
    /**
     * 订单id
     */
    private Long pkOrder;
    /**
     * 会员ID
     */
    private Long pkMember;
    /**
     * 创建人
     */
    private Long pkCreator;
    /**
     * 订单编号
     */
    private String orderCode;

    /**
     * 服务编号
     */
    private String memberServiceCode;
    /**
     * 会员昵称
     */
    private String memberNickName;
    /**
     * 所属体系
     */
    private Long memberPkVertex;

    /**
     * 会员姓名
     */
    private String memberName;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 订单类型（EOrderType）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE)
    private Integer orderType;
    /**
     * 订单类型显示
     */
    private String orderTypeVal;

    /**
     * 订单金额
     */
    @BigDecimalFormat
    private BigDecimal orderAmount;

    /**
     * 注册编号
     */
    private String creatorCode;

    /**
     * 订单业绩（PV）
     */
    @BigDecimalFormat
    private BigDecimal orderAchieve;

    /**
     * 会员编号
     */
    private String memberCode;

    /**
     * 订单状态（EOrderStatus）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_STATUS)
    private Integer orderStatus;
    /**
     * 订单状态显示
     */
    private String orderStatusVal;

    /**
     * 驳回信息
     */
    private String rejectMsg;

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

    /**
     * 收货电话
     */
    private String recPhone;

    /**
     * 省
     */
    private Integer recProvince;

    /**
     * 市
     */
    private Integer recCity;

    /**
     * 县
     */
    private Integer recCounty;

    /**
     * 省
     */
    private String recProvinceVal;

    /**
     * 市
     */
    private String recCityVal;

    /**
     * 县
     */
    private String recCountyVal;

    /**
     * 收货地址
     */
    private String recAddress;

    /**
     * 备注
     */
    private String remark;

    /**
     * 订单商品明细
     */
    private List<WaresOrderVo> waresOrderList;

    /**
     * 商品编号
     */
    private String waresCode;

    /**
     * 商品数量
     */
    private Integer quantity;

    /**
     * 商品明细主键
     */
    private Integer pkWaresDetail;

    /**
     * sku主键
     */
    private Integer pkWaresSpecsSku;

    /**
     * 规格明细主键
     */
    private Integer pkWaresSpecs;
    /**
     * 所属专区
     */
    private Integer specialArea;

    /**
     * 审核状态（0=待提交，1=待审核，2=审核通过，3=审核驳回）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_RECHARGE_OPERATION)
    private Integer approveStatus;
    private String approveStatusVal;

    /**
     * 汇率
     */
    private BigDecimal inExchangeRate;

    /**
     * 提货码
     */
    private String selfCode;


}
