package com.xhpc.user.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * <code>/selectAllInvoiceOrders</code>接口的响应包装数据类
 *
 * @author WH
 * @date 2021/12/21 10:50
 * @since version-1.0
 */
@NoArgsConstructor
@Data
public class AllInvoiceOrdersResponse {

    /**
     * 历史订单总记录条数
     */
    @JsonProperty("totalItems")
    private Long totalItems;
    /**
     * 已开发票的金额
     */
    @JsonProperty("invoicedSumMoney")
    private BigDecimal invoicedSumMoney;
    /**
     * 未开发票的金额
     */
    @JsonProperty("notInvoiceSumMoney")
    private BigDecimal notInvoiceSumMoney;
    /**
     * 当前页的数据
     */
    @JsonProperty("items")
    private List<ItemsDTO> items;

    @NoArgsConstructor
    @Data
    public static class ItemsDTO {

        /**
         * 发票id
         */
        @JsonProperty("invoiceId")
        private Long invoiceId;
        /**
         * 申请人（手机号）
         */
        @JsonProperty("creator")
        private String creator;
        /**
         * 申请人类型（0为c端用户，1为B端用户，2为机构用户）
         */
        @JsonProperty("creatorType")
        private Integer creatorType;
        /**
         *
         */
        @JsonProperty("invoiceType")
        private Integer invoiceType;
        /**
         * 发票类型 0为普票，1为专票
         */
        @JsonProperty("invoiceStatus")
        private Integer invoiceStatus;
        /**
         * 发票金额
         */
        @JsonProperty("invoiceMoney")
        private BigDecimal invoiceMoney;
        /**
         * 发票状态，0为未开票，1为已经开发票，2为开票失败
         */
        @JsonProperty("status")
        private Integer status;
        /**
         * 发票申请时间
         */
        @JsonProperty("createTime")
        private String createTime;
        /**
         * 开票时间
         */
        @JsonProperty("invoicingTime")
        private String invoicingTime;
        /**
         * 开票人
         */
        @JsonProperty("drawer")
        private String drawer;
        /**
         * 订单所属运营商
         */
        @JsonProperty("orderOperatorName")
        private String orderOperatorName;
        /**
         * 开票运营商
         */
        @JsonProperty("invoiceOperatorName")
        private String invoiceOperatorName;

    }

}
