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

import com.zanxiang.module.util.excel.ExcelAnno;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author : lingfeng
 * @time : 2023-07-25
 * @description : 订单
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class OrderExcelVO {

    /**
     * 日期
     */
    @ExcelAnno(title = "日期")
    private LocalDate dateTime;

    /**
     * 订单id
     */
    @ExcelAnno(title = "订单id")
    private String orderId;

    /**
     * cp订单号
     */
    @ExcelAnno(title = "cp订单号")
    private String cpOrderId;

    /**
     * 商户订单号
     */
    @ExcelAnno(title = "商户订单号")
    private String merchantOrderNo;

    /**
     * 玩家ID
     */
    @ExcelAnno(title = "玩家ID")
    private Long userId;

    /**
     * 玩家账号
     */
    @ExcelAnno(title = "玩家账号")
    private String username;

    /**
     * 注册时间
     */
    @ExcelAnno(title = "注册时间")
    private LocalDateTime regTime;

    /**
     * 渠道名称
     */
    @ExcelAnno(title = "渠道名称")
    private String agentName;

    /**
     * cp名称
     */
    @ExcelAnno(title = "cp名称")
    private String cpName;

    /**
     * 归因投放人员名字
     */
    @ExcelAnno(title = "归因投放人员名字")
    private String pitcherName;

    /**
     * 归因推广账号id
     */
    @ExcelAnno(title = "归因推广账号id")
    private Long accountId;

    /**
     * 推广账号类型（1：腾讯、2：头条）
     */
    @ExcelAnno(title = "推广账号类型（1：腾讯、2：头条）")
    private Integer accountType;

    /**
     * 游戏名称
     */
    @ExcelAnno(title = "游戏名称")
    private String gameName;

    /**
     * 游戏类型
     */
    @ExcelAnno(title = "游戏类型名称")
    private String gameCategoryName;

    /**
     * 产品名称
     */
    @ExcelAnno(title = "产品名称")
    private String productName;

    /**
     * 订单金额
     */
    @ExcelAnno(title = "订单金额")
    private BigDecimal amount;

    /**
     * 订单实付金额
     */
    @ExcelAnno(title = "订单实付金额")
    private BigDecimal realAmount;

    /**
     * 支付方式
     */
    @ExcelAnno(title = "支付方式名称")
    private String payWayName;

    /**
     * 支付场景
     */
    @ExcelAnno(title = "支付场景名称")
    private String payDeviceName;

    /**
     * 商户号
     */
    @ExcelAnno(title = "商户号")
    private String merchantNo;

    /**
     * 商户名称
     */
    @ExcelAnno(title = "商户名称")
    private String merchantName;

    /**
     * 原始服务器名称
     */
    @ExcelAnno(title = "原始服务器名称")
    private String sourceServerName;

    /**
     * 所在服务器名称
     */
    @ExcelAnno(title = "所在服务器名称")
    private String serverName;

    /**
     * 角色名称
     */
    @ExcelAnno(title = "角色名称")
    private String roleName;

    /**
     * 角色等级
     */
    @ExcelAnno(title = "角色等级")
    private Long roleLevel;

    /**
     * 客户端操作系统, android, ios, windows, mac
     */
    @ExcelAnno(title = "客户端操作系统, android, ios, windows, mac")
    private String deviceSystem;

    /**
     * 创建时间
     */
    @ExcelAnno(title = "创建时间")
    private LocalDateTime createTime;

    /**
     * 支付时间
     */
    @ExcelAnno(title = "支付时间")
    private LocalDateTime payTime;

    /**
     * cp最后通知时间
     */
    @ExcelAnno(title = "cp最后通知时间")
    private LocalDateTime lastCpNotifyTime;

    /**
     * 支付状态，1待支付，2 支付成功，-1 已取消
     */
    @ExcelAnno(title = "支付状态，1待支付，2 支付成功，-1 已取消")
    private Integer status;

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

    /**
     * 是否首充 0 否 1 是
     */
    @ExcelAnno(title = "是否首充 0 否 1 是")
    private Integer isFirstRecharge;
}
