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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zanxiang.game.module.mybatis.entity.Order;
import com.zanxiang.module.web.pojo.BaseListDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;

/**
 * @author : lingfeng
 * @time : 2022-11-07
 * @description : 订单
 */
@Data
public class OrderParam extends BaseListDTO<Order> {

    @ApiModelProperty(notes = "订单ID：订单号")
    private String orderId;

    @ApiModelProperty(notes = "cp订单号")
    private String cpOrderId;

    @ApiModelProperty(notes = "第三方支付订单号")
    private String merchantOrderNo;

    @ApiModelProperty(notes = "玩家id")
    private String userId;

    @ApiModelProperty(notes = "玩家账号")
    private String username;

    @ApiModelProperty(notes = "所在服务器名称")
    private String serverName;

    @ApiModelProperty(notes = "游戏角色")
    private String roleName;

    @ApiModelProperty(notes = "cpId")
    private String cpId;

    @ApiModelProperty(notes = "充值游戏id")
    private Long gameId;

    @ApiModelProperty(notes = "注册渠道对应的id")
    private Long channelId;

    @ApiModelProperty(notes = "归因推广账号")
    private String accountId;

    @ApiModelProperty(notes = "归因投放人员")
    private String pitcherId;

    @ApiModelProperty(notes = "操作系统对应的id, 全部 : null或者不传")
    private String deviceSystem;

    @ApiModelProperty(notes = "是否切量  0 否 1 是")
    private Integer isSwitch;

    @ApiModelProperty(notes = "产品名称")
    private String productName;

    @ApiModelProperty(notes = "支付方式Id")
    private String payWayId;

    @ApiModelProperty(notes = "收款商户号")
    private String merchantNo;

    @ApiModelProperty(notes = "支付状态，1待支付，2 支付成功，-1 已取消")
    private Integer status;

    @ApiModelProperty(notes = "CP通知状态，1为待处理，2为成功，-1为失败")
    private Integer cpStatus;

    @ApiModelProperty(notes = "是否首充 0 否 1 是")
    private Integer isFirstRecharge;

    @ApiModelProperty(notes = "广告上报状态")
    private Integer callBackStatus;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "下单时间-开始")
    private LocalDate beginDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "下单时间-结束")
    private LocalDate endDate;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(notes = "玩家注册时间-开始")
    private LocalDate regTimeStart;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(notes = "玩家注册时间-结束")
    private LocalDate regTimeEnd;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(notes = "支付时间-开始")
    private LocalDate payTimeStart;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(notes = "支付时间-结束")
    private LocalDate payTimeEnd;

    @ApiModelProperty("充值到支付的间隔时间（分）")
    private Long regPayIntervalTimeMin;

    @ApiModelProperty("充值到支付的间隔时间（分）")
    private Long regPayIntervalTimeMax;
}
