package com.zsElectric.boot.thirdParty.model;

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

import java.io.Serial;
import java.io.Serializable;

/**
 * 第三方接入通用请求实体
 * 所有第三方请求均需满足此格式
 *
 * @author wzq
 */
@Data
public class ThirdPartyRequest implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 运营商标识 - 请求方唯一编号（长度9位，由数字及大小写字符组成）
     */
    @JsonProperty("operatorId")
    private String operatorId;

    /**
     * 加密后的参数内容 - AES 128位加密(CBC模式, PKCS5Padding)
     */
    @JsonProperty("data")
    private String data;

    /**
     * 时间戳 - 格式: yyyyMMddHHmmss
     */
    @JsonProperty("timeStamp")
    private String timeStamp;

    /**
     * 自增序列 - 4位序列号
     */
    @JsonProperty("seq")
    private String seq;

    /**
     * 数字签名 - HMAC-MD5签名(大写)
     * 入参拼接顺序: operatorId + data + timeStamp + seq
     */
    @JsonProperty("sig")
    private String sig;
}
