package com.zksy.visualization.domain.response;
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 09:56:57
 */
@Data
@ApiModel(description = "停车平台概览响应")
public class ParkingOverviewResponse {

    @ApiModelProperty(value = "概况信息")
    private UserSurvey userSurvey;

    @ApiModelProperty(value = "今日收款占比")
    private List<ChargeDetail> chargeDetail;

    @ApiModelProperty(value = "今日泊位概况")
    private CarportModel carportModel;

    @Data
    @ApiModel(description = "用户总览")
    public static class UserSurvey {
        @ApiModelProperty(value = "储值")
        private Account storedAccount;

        @ApiModelProperty(value = "月卡")
        private Account secularAccount;

        @ApiModelProperty(value = "长期")
        private Account monthAccount;

        @Data
        @ApiModel(description = "账户概览DTO")
        public static class Account {
            @ApiModelProperty(value = "金额 ，单位：元")
            private String totalMoney;

            @ApiModelProperty(value = "当前用户数")
            private String currentAmount;

            @ApiModelProperty(value = "当日新增用户数")
            private String newAmount;

            @ApiModelProperty(value = "当日续费用户数")
            private String renewAmount;

            @ApiModelProperty(value = "余额不足用户数（储值用户）")
            private String noMoneyAmount;

            @ApiModelProperty(value = "过期用户数")
            private String expireAmount;

            @ApiModelProperty(value = "即将过期用户数")
            private String immediatelyAmount;
        }
    }

    @Data
    @ApiModel(description = "收费项目详情")
    public static class ChargeDetail {
        @ApiModelProperty(value = "支付方式，现金、支付宝、微信、银行支付 、其他")
        private String name;

        @ApiModelProperty(value = "金额，单位：元")
        private String value;

        @ApiModelProperty(value = "占比")
        private String rate;
    }

    @Data
    @ApiModel(description = "泊位模型")
    public static class CarportModel {
        @ApiModelProperty(value = "总泊位数")
        private String totalCarports;

        @ApiModelProperty(value = "已用泊位数")
        private String uesdCarports;

        @ApiModelProperty(value = "剩余泊位数")
        private String canUseCarports;

        @ApiModelProperty(value = "已用泊位占比")
        private String usedRate;

        @ApiModelProperty(value = "剩余泊位占比")
        private String canUseRate;
    }
}
