package com.red.circle.order.app.common;

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

import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.List;

/**
 * PayerMax汇率查询请求参数
 *
 * @author system
 */
@Data
public class QuoteQueryParam {
    
    /**
     * 接口版本 当前值为：1.2
     */
    @JsonProperty("version")
    private String version = "1.2";
    
    /**
     * 密钥版本 当前值为：1
     */
    @JsonProperty("keyVersion")
    private String keyVersion = "1";
    
    /**
     * 请求时间，符合rfc3339规范，格式：yyyy-MM-dd'T'HH:mm:ss.SSSXXX
     */
    @JsonProperty("requestTime")
    private String requestTime;
    
    /**
     * 商户应用Id
     */
    @JsonProperty("appId")
    private String appId;
    
    /**
     * 商户号
     */
    @JsonProperty("merchantNo")
    private String merchantNo;
    
    /**
     * 数据部分
     */
    @JsonProperty("data")
    private QuoteQueryData data;
    
    @Data
    public static class QuoteQueryData {
        /**
         * 币种对列表，基于美金标价法拼接，USD在前，例如:USDIDR
         */
        @JsonProperty("ccyPairList")
        private List<String> ccyPairList;
        
        /**
         * 价格类型列表，买入价BID,卖出价OFFER,默认查询全部
         */
        @JsonProperty("priceTypeList")
        private List<String> priceTypeList;
    }
    
    public QuoteQueryParam() {
        // 设置当前时间，格式：yyyy-MM-dd'T'HH:mm:ss.SSSXXX（示例：2022-06-10T20:30:53.732+08:00）
        this.requestTime = OffsetDateTime.now(ZoneId.of("+08:00"))
                .format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"));
    }
}
