package com.yiqi.recharge.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yiqi.common.annotation.Excel;
import com.yiqi.common.core.domain.PageVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel("充值卡消费记录对象")
@Data
public class RechargeCardBillMstrQueryVO {

    /** 主键ID */
    @ApiModelProperty("主键ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("充值卡ID")
    private Long rechargeCardId;

    /** 账单标题 */
    @Excel(name = "账单标题")
    @ApiModelProperty("账单标题")
    private String title;

    /** 账单内容 */
    @Excel(name = "账单内容")
    @ApiModelProperty("账单内容")
    private String content;

    @ApiModelProperty("订单ID")
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty("订单编号")
    private String orderNo;

    /** 订单类型（0洗衣订单，1商品订单，2生活服务订单，3汽车美容订单，4充值订单） */
    @Excel(name = "订单类型", readConverterExp = "0=洗衣订单，1商品订单，2生活服务订单，3汽车美容订单，4充值订单")
    @ApiModelProperty("订单类型（0洗衣订单，1商品订单，2生活服务订单，3汽车美容订单，4充值订单）")
    private String orderType;

    @ApiModelProperty("充值卡批次号")
    private String batchNo;

    /** 支付方式（0微信，1支付宝，2现金，3余额，4分段付） */
    @Excel(name = "支付方式", readConverterExp = "0=微信，1支付宝，2现金，3余额，4分段付")
    @ApiModelProperty("支付方式（0微信，1支付宝，2现金，3余额，4分段付）")
    private String payType;

    /** 客户ID */
    @Excel(name = "客户ID")
    @ApiModelProperty("客户ID")
    private Long appUserId;

    @ApiModelProperty("客户名称")
    private String userName;

    @ApiModelProperty("手机号")
    private String phoneNumber;

    /** 组织ID */
    @Excel(name = "组织ID")
    @ApiModelProperty("组织ID")
    private Long orgId;

    @ApiModelProperty("消费门店")
    private String orgName;

    /** 来源类型 */
    @Excel(name = "来源类型")
    @ApiModelProperty("来源类型")
    private String sourceType;

    /** 账单类型（0=支出，1=充值） */
    @Excel(name = "账单类型", readConverterExp = "0==支出，1=充值")
    @ApiModelProperty("账单类型（0=支出，1=充值）")
    private String billType;

    /** 支付总金额 */
    @Excel(name = "支付总金额")
    @ApiModelProperty("支付总金额")
    private BigDecimal payTotalAmount;

    /** 现金支付金额 */
    @Excel(name = "现金支付金额")
    @ApiModelProperty("现金支付金额")
    private BigDecimal cashPayAmount;

    /** 充值余额支付金额 */
    @Excel(name = "充值余额支付金额")
    @ApiModelProperty("充值余额支付金额")
    private BigDecimal rechargePayAmount;

    /** 赠送余额支付金额 */
    @Excel(name = "赠送余额支付金额")
    @ApiModelProperty("赠送余额支付金额")
    private BigDecimal givePayAmount;

    @ApiModelProperty("福利金余额支付金额")
    private BigDecimal welfarePayAmount;

    /** 获取积分 */
    @Excel(name = "获取积分")
    @ApiModelProperty("获取积分")
    private Integer receivePoint;

    /** 消费积分 */
    @Excel(name = "消费积分")
    @ApiModelProperty("消费积分")
    private Integer usePoint;

    /** 是否为退款 */
    @Excel(name = "是否为退款")
    @ApiModelProperty("是否为退款")
    private String isRefund;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;
}
