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.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 订单开票返回VO
 * @Author: jiang chao
 * @Time: 2024/11/22 17:11
 * @Classname: OrderInvoicingVO
 * @PackageName: com.hzs.sale.order.vo
 */
@Data
public class OrderInvoicingVO implements Serializable {

    /**
     * 订单主键
     */
    private Long pkOrder;

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

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

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

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

    /**
     * 联系电话
     */
    private String phone;

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

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

    /**
     * 省
     */
    private Integer recProvince;
    /**
     * 省名称
     */
    private String recProvinceName;

    /**
     * 市
     */
    private Integer recCity;
    /**
     * 市名称
     */
    private String recCityName;

    /**
     * 县
     */
    private Integer recCounty;
    /**
     * 县名称
     */
    private String recCountyName;

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

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

    /**
     * 邮费
     */
    @BigDecimalFormat
    private BigDecimal postage;

    /**
     * 订单业绩
     */
    private BigDecimal orderAchieve;

    /**
     * 订单考核业绩 && EV
     */
    private BigDecimal orderAssAchieve;

    /**
     * 发货方式
     */
    @Transaction(transactionKey = EnumsPrefixConstants.DELIVERY)
    private Integer deliveryWay;
    /**
     * 发货方式显示
     */
    private String deliveryWayVal;

    /**
     * 支付方式
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_PAY_TYPE)
    private Integer payType;
    /**
     * 支付方式显示
     */
    private String payTypeVal;

    /**
     * 实际支付金额
     */
    private BigDecimal payMoney;

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

    /**
     * 开票备注
     */
    private String remarks;

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

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

}
