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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zanxiang.game.module.mybatis.entity.GameUserRole;
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-06-30
 * @description : 玩家角色列表查询参数
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class GameUserRoleListParam extends BaseListDTO<GameUserRole> {

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

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

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

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

    /**
     * 游戏区服
     */
    private String serverName;

    /**
     * 游戏角色
     */
    private String roleName;

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

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

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

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

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

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

    /**
     * 操作系统对应的id
     */
    private String os;

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

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

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

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

    /**
     * 开始时间
     */
    @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 roleLevelMin;

    /**
     * 最大角色等级
     */
    private Long roleLevelMax;

    /**
     * 注册开始时间
     */
    private LocalDate regTimeBeginDate;

    /**
     * 注册结束时间
     */
    private LocalDate regTimeEndDate;

    private Long regPayIntervalTimeMin;

    private Long regPayIntervalTimeMax;
}
