package com.zanxiang.game.module.manage.pojo.params;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zanxiang.game.module.mybatis.entity.User;
import com.zanxiang.module.web.pojo.BaseListDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

/**
 * @author : lingfeng
 * @time : 2022-07-06
 * @description : 玩家列表查询参数
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class UserListParam extends BaseListDTO<User> {

    /**
     * 玩家id
     */
    private Long userId;

    /**
     * 玩家账号
     */
    private String userName;

    /**
     * 玩家昵称
     */
    private String nickname;

    /**
     * 绑定手机号码
     */
    private String mobile;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 注册IP
     */
    private String regIp;

    /**
     * 是否实名认证
     */
    private Boolean isAuth;

    /**
     * 玩家手机绑定状态
     */
    private Boolean isBindMobile;

    /**
     * cp名称对应的id
     */
    private Long cpId;

    /**
     * 游戏名称对应的id
     */
    private Long gameId;

    /**
     * 游戏应用类型对应的id
     */
    private Long gameCategoryId;

    /**
     * 最近充值开始时间(开始玩开始时间请使用beginDate参数)
     */
    private LocalDate rechargeBeginDate;

    /**
     * 最近充值结束时间(开始玩结束时间请使用endDate参数)
     */
    private LocalDate rechargeEndDate;

    /**
     * 是否充值
     */
    private Boolean isRecharge;

    /**
     * 角色vip
     */
    private Integer vipLevel;

    /**
     * 玩家状态, 0 : 正常, 1 : 封禁
     */
    private Integer status;

    /**
     * 注册渠道对应的id
     */
    private Long channelId;

    /**
     * 归因推广账号
     */
    private String accountId;

    /**
     * 归因投放人员
     */
    private String pitcherId;

    /**
     * 客服id
     */
    private Long customerId;

    /**
     * 归因广告id
     */
    private String adId;

    /**
     * 是否切量
     */
    private Boolean isCutCount;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate beginDate;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate endDate;

    private Long regPayIntervalTimeMin;

    private Long regPayIntervalTimeMax;

    /**
     * 是否创角
     */
    private Boolean createRole;

    /**
     * 角色数量最小值
     */
    private Integer roleCountMin;

    /**
     * 角色数量最大值
     */
    private Integer roleCountMax;
}
