package com.xhpc.payment.util;

import com.google.gson.annotations.SerializedName;

/**
 * 微信支付回调通知外层报文
 * 对应 resource 加密前的原始 JSON
 */
public class TransferBatchCallbackNotification {
    @SerializedName("id")
    private String id;

    @SerializedName("create_time")
    private String createTime;

    @SerializedName("resource_type")
    private String resourceType;

    @SerializedName("event_type")
    private String eventType;

    @SerializedName("summary")
    private String summary;

    @SerializedName("resource")
    private Resource resource;

    // ----- Getters and Setters -----
    public String getId() { return id; }
    public void setId(String id) { this.id = id; }

    public String getCreateTime() { return createTime; }
    public void setCreateTime(String createTime) { this.createTime = createTime; }

    public String getResourceType() { return resourceType; }
    public void setResourceType(String resourceType) { this.resourceType = resourceType; }

    public String getEventType() { return eventType; }
    public void setEventType(String eventType) { this.eventType = eventType; }

    public String getSummary() { return summary; }
    public void setSummary(String summary) { this.summary = summary; }

    public Resource getResource() { return resource; }
    public void setResource(Resource resource) { this.resource = resource; }

    public static class Resource {
        @SerializedName("original_type")
        private String originalType;

        @SerializedName("algorithm")
        private String algorithm;

        @SerializedName("ciphertext")
        private String ciphertext;

        @SerializedName("associated_data")
        private String associatedData;

        @SerializedName("nonce")
        private String nonce;

        // ----- Getters and Setters -----
        public String getOriginalType() { return originalType; }
        public void setOriginalType(String originalType) { this.originalType = originalType; }

        public String getAlgorithm() { return algorithm; }
        public void setAlgorithm(String algorithm) { this.algorithm = algorithm; }

        public String getCiphertext() { return ciphertext; }
        public void setCiphertext(String ciphertext) { this.ciphertext = ciphertext; }

        public String getAssociatedData() { return associatedData; }
        public void setAssociatedData(String associatedData) { this.associatedData = associatedData; }

        public String getNonce() { return nonce; }
        public void setNonce(String nonce) { this.nonce = nonce; }
    }
}
