package com.xy.dto;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.xy.utils.PageBean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;

/**
 * <p>
 * 商户佣金费用收益每日统计（不含今天）
 * </p>
 *
 * @author 谭斌
 * @since 2024-04-23
 */
public class MercFeeCountDayDto {
    @Data
    @Accessors(chain = true)
    public static class ExcuteDayDTO {
        @NotBlank(message = "日期不可为空yyyyMMdd")
        @ApiModelProperty(value = "分页对象", required = true)
        private String date;
        private Integer type;
    }

    @Data
    @Accessors(chain = true)
    public static class SelectList extends Vo {

    }

    @Data
    @Accessors(chain = true)
    public static class Page extends Vo {

        @ApiModelProperty(value = "分页对象", required = true)
        private PageBean page;

    }

    @Data
    @Accessors(chain = true)
    public static class Save extends Vo {

    }

    @Data
    @Accessors(chain = true)
    public static class Update extends Vo {

    }

    @Data
    @Accessors(chain = true)
    public static class CountByMonth {
        @ApiModelProperty("统计月份202206")
        private Integer monthValue;
    }

    @Data
    @Accessors(chain = true)
    public static class CountByMonthVO {
        @ApiModelProperty(value = "商户ID")
        private Long mercId;

        @ApiModelProperty(value = "父商户ID")
        private Long parentMercId;

        @ApiModelProperty(value = "缴费金额")
        private Integer payMoney;

        @ApiModelProperty(value = "佣金")
        private Integer brokerage;

        @ApiModelProperty(value = "缴费类型")
        private Integer feeType;


    }


    @Data
    @Accessors(chain = true)
    public static class Vo {

        @ApiModelProperty(value = "id")
        private Long id;

        @ApiModelProperty(value = "商户ID")
        private Long mercId;

        @ApiModelProperty(value = "父商户ID")
        private Long parentMercId;

        @ApiModelProperty(value = "统计日期20220603")
        private Integer dateValue;

        @ApiModelProperty(value = "统计日期202206")
        private Integer monthValue;

        @ApiModelProperty(value = "缴费金额")
        private Integer payMoney;

        @ApiModelProperty(value = "佣金")
        private Integer brokerage;

        @ApiModelProperty(value = "缴费类型")
        private Integer feeType;

        @ApiModelProperty(value = "创建时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime createTime;

        @ApiModelProperty(value = "更新时间")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private LocalDateTime updateTime;


    }

}
