package com.liquidnet.service.goblin.param.shouqianba.response.data;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@ApiModel(value = "商城列表查询响应数据")
public class MallListQueryData {

    @ApiModelProperty("商城编号")
    private String mallSn;

    @ApiModelProperty("商城签名")
    private String signature;

    @ApiModelProperty("商城名称")
    private String mallName;

    @ApiModelProperty("商城状态 0:待上线 1:已上线 2:已下线")
    private Byte state;

    @ApiModelProperty("商城状态描述")
    private String stateDesc;

    @ApiModelProperty("内部状态 1启用 0禁用")
    private Byte internalState;

    @ApiModelProperty("内部状态描述")
    private String internalStateDesc;

    @ApiModelProperty("删除状态 0未删除 1已删除")
    private Byte isDelete;

    @ApiModelProperty("删除时间")
    private String deleteTime;

    @ApiModelProperty("大额开通状态")
    private Byte crossCityPaymentStatus;

    @ApiModelProperty("大额开通状态描述")
    private String crossCityPaymentStatusDesc;

    @ApiModelProperty("应用类型 0拼塔商城 目前都是0，无需关注")
    private Integer appType;

    @ApiModelProperty("行业code")
    private String industryCode;

    @ApiModelProperty("商户信息")
    private Seller seller;

    @ApiModelProperty("订单统计")
    private OrderStatistics orderStatistics;

    @ApiModelProperty("商户统计")
    private SellerStatisticsModel sellerStatisticsModel;

    @ApiModelProperty("创建时间")
    private String ctime;

    @ApiModelProperty("跨城状态明细")
    private List<CrossCityPayment> crossCityPayments;


    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ApiModel("商户信息")
    public static class Seller {
        @ApiModelProperty("商户号")
        private String merchantSn;

        @ApiModelProperty("商户id")
        private String merchantId;

        @ApiModelProperty("商户名称")
        private String merchantName;

        @ApiModelProperty("门店号")
        private String storeSn;

        @ApiModelProperty("门店id")
        private String storeId;

        @ApiModelProperty("门店名称")
        private String storeName;

        @ApiModelProperty("终端号")
        private String terminalSn;

        @ApiModelProperty("大额终端编号")
        private String crossCityTerminalSn;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ApiModel("订单统计")
    public static class OrderStatistics {
        @ApiModelProperty("订单数量")
        private Long totalNum;

        @ApiModelProperty("商品数量")
        private String totalQuantity;

        @ApiModelProperty("订单总额（分）")
        private Long totalAmount;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ApiModel("商户统计")
    public static class SellerStatisticsModel {
        @ApiModelProperty("异地交易失败订单数量")
        private Long orderFailNum;
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    @ApiModel("跨城支付明细")
    public static class CrossCityPayment {
        @ApiModelProperty("支付工具code 2:支付宝 3:微信")
        private Byte payToolCode;

        @ApiModelProperty("支付工具描述")
        private String payToolCodeDesc;

        @ApiModelProperty("大额开通状态")
        private Integer status;

        @ApiModelProperty("大额开通状态描述")
        private String statusDesc;
    }
}
