package com.kym.entity.wechat;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

import java.util.List;

/**
 * @author skyline
 * @description 微信发票回调通知
 * @date 2023-09-17 11:30
 */
@Data
public class InvoiceNotification {

    /**
     * 微信支付分配的商户号
     */
    @SerializedName("mchid")
    private String mchid;

    /**
     * 开票时指定的发票申请单号
     */
    @SerializedName("fapiao_apply_id")
    private String fapiaoApplyId;

    @SerializedName("fapiao_information")
    private List<FapiaoInformation> fapiaoInformation;


    /**
     * 发票状态
     */
    public enum FapiaoStatus {
        ISSUE_ACCEPTED, ISSUED, REVERSE_ACCEPTED, REVERSED
    }


    /**
     * 发票状态-卡包状态
     */
    public enum CardStatus {
        INSERT_ACCEPTED, INSERTED, DISCARD_ACCEPTED, DISCARDED
    }

    @Data
    public class FapiaoInformation {

        /**
         * 商户发票单号，唯一标识一张发票
         */
        @SerializedName("fapiao_id")
        private String fapiaoId;

        /**
         * 发票状态，枚举值：
         * ISSUE_ACCEPTED：开票请求已受理
         * ISSUED：发票已开具
         * REVERSE_ACCEPTED：冲红申请已受理
         * REVERSED：发票已冲红
         */
        @SerializedName("fapiao_status")
        private String fapiaoStatus;

        /**
         * 发票状态，枚举值：
         * INSERT_ACCEPTED：已插入用户卡包
         * INSERTED：插卡已受理
         * DISCARD_ACCEPTED：作废申请已受理
         * DISCARDED：发票卡券已作废
         */
        @SerializedName("card_status")
        private String cardStatus;

    }
}
