package com.sundot.airport.item.domain.push;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 查获消息推送数据传输对象
 * 用于向登录用户推送其名下的全站查获信息
 */
@Data
@ApiModel(value = "SeizureMessagePushDTO", description = "查获消息推送数据")
public class SeizureMessagePushDTO {

    /**
     * 移交公安违禁品 TOP3
     */
    @ApiModelProperty("移交公安违禁品 TOP3")
    private List<ProhibitedItemTop3> prohibitedItemsTop3;

    /**
     * 故意隐匿物品藏匿部位 TOP3
     */
    @ApiModelProperty("故意隐匿物品藏匿部位 TOP3")
    private List<ConcealmentPositionTop3> concealmentPositionsTop3;

    /**
     * 移交公安违禁品高发通道 TOP3
     */
    @ApiModelProperty("移交公安违禁品高发通道 TOP3")
    private List<HighRiskChannelTop3> highRiskChannelsTop3;

    /**
     * 移交公安违禁品 TOP3
     */
    @Data
    @ApiModel(value = "ProhibitedItemTop3", description = "移交公安违禁品 TOP3")
    public static class ProhibitedItemTop3 {

        @ApiModelProperty("排名")
        private Integer rank;

        @ApiModelProperty("违禁品一级分类编码")
        private String categoryCodeOne;

        @ApiModelProperty("违禁品一级分类名称")
        private String categoryNameOne;

        @ApiModelProperty("违禁品二级分类编码")
        private String categoryCodeTwo;

        @ApiModelProperty("违禁品二级分类名称")
        private String categoryNameTwo;

        @ApiModelProperty("查获数量")
        private BigDecimal seizureCount;
    }

    /**
     * 故意隐匿物品藏匿部位 TOP3
     */
    @Data
    @ApiModel(value = "ConcealmentPositionTop3", description = "故意隐匿物品藏匿部位 TOP3")
    public static class ConcealmentPositionTop3 {

        @ApiModelProperty("排名")
        private Integer rank;

        @ApiModelProperty("藏匿部位一级分类编码")
        private String positionCodeOne;

        @ApiModelProperty("藏匿部位一级分类名称")
        private String positionNameOne;

        @ApiModelProperty("藏匿部位二级分类编码")
        private String positionCodeTwo;

        @ApiModelProperty("藏匿部位二级分类名称")
        private String positionNameTwo;

        @ApiModelProperty("隐匿次数")
        private BigDecimal concealmentCount;
    }

    /**
     * 移交公安违禁品高发通道 TOP3
     */
    @Data
    @ApiModel(value = "HighRiskChannelTop3", description = "移交公安违禁品高发通道 TOP3")
    public static class HighRiskChannelTop3 {

        @ApiModelProperty("排名")
        private Integer rank;

        @ApiModelProperty("航站楼")
        private String terminalName;

        @ApiModelProperty("区域")
        private String areaName;

        @ApiModelProperty("具体通道名称")
        private String channelName;

        @ApiModelProperty("移交公安数")
        private BigDecimal transferToPoliceCount;
    }
}
