package com.zksy.visualization.domain.response;

import com.dahuatech.icc.oauth.http.IccResponse;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * @author Administrator
 * @version 1.0
 * @project dh-server-micro
 * @description 车流统计
 * @date 2024/12/16 10:16:23
 */
@Data
@ApiModel(description = "车流统计响应")
public class TrafficStatisticsResponse {
    /**
     * 车流统计信息，包含总的入场和出场车流量。
     */
    @ApiModelProperty(value = "车流统计对象", required = true)
    private CarInOutSurveyInfo carInOutSurvey;

    /**
     * 车流明细，按时间段统计的入场和出场车流量。
     */
    @ApiModelProperty(value = "车流明细", required = true)
    private List<CarInoutItem> carInoutTrend;

    /**
     * 车流统计信息实体类，用于表示总的入场和出场车流量。
     */
    @Data
    @ApiModel(description = "车流统计信息")
    public static class CarInOutSurveyInfo {

        /**
         * 总入场车流量。
         */
        @ApiModelProperty(value = "总入场车流量", example = "0", required = true)
        private String inFlow;

        /**
         * 总出场车流量。
         */
        @ApiModelProperty(value = "总出场车流量", example = "0", required = true)
        private String outFlow;
    }

    /**
     * 车流明细实体类，用于表示按时间段统计的入场和出场车流量。
     */
    @Data
    @ApiModel(description = "车流明细")
    public static class CarInoutItem {

        /**
         * 时间段，格式为HH:mm，例如"00:00"。
         */
        @ApiModelProperty(value = "时段，示例格式：\"00:00\"", example = "00:00", required = true)
        private String dates;

        /**
         * 入场车流量，在指定时间段内的入场车辆数量。
         */
        @ApiModelProperty(value = "入场车流量", example = "0", required = true)
        private String inFlow;

        /**
         * 出场车流量，在指定时间段内的出场车辆数量。
         */
        @ApiModelProperty(value = "出场车流量", example = "0", required = true)
        private String outFlow;
    }
}
