package com.zanxiang.game.data.serve.pojo.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zanxiang.game.data.serve.pojo.base.BasePage;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.util.List;

/**
 * @author tianhua
 * @time 2023/9/6
 * @Description 前端玩家角色列表查询参数实体
 **/
@Data
public class PlayerRoleDataListDTO extends BasePage {

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

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

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

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

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

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

    /**
     * 游戏角色id
     */
    
    private String roleId;

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

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

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

    /**
     * 注册渠道对应的id
     */
    
    private List<String> channelId;

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

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

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

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

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

    /**
     * 最近充值开始时间
     */
    
    private LocalDate rechargeBeginDate;

    /**
     * 最近充值结束时间
     */
    
    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;

    /**
     * 排序字段
     */
    
    private String sortFiled;

    /**
     * 排序方式
     */
    
    private String sortType;

    /**
     * SDK来源
     */
    
    private String sourceSystem;

}
