package com.yonge.cooleshow.biz.dal.dto.search;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yonge.cooleshow.biz.dal.enums.AccountBizTypeEnum;
import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
import com.yonge.cooleshow.common.enums.PostStatusEnum;
import com.yonge.toolset.base.page.QueryInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * @Author: liweifan
 * @Data: 2022-03-30 13:53:51
 */
@ApiModel(value = "UserAccountRecordSearch对象", description = "用户账户流水表查询对象")
public class UserAccountRecordSearch extends QueryInfo{

	private static final long serialVersionUID = 1L;

	@ApiModelProperty("用户id ")
	private Long userId;

	@ApiModelProperty("订单号 ")
	private String orderNo;

	@ApiModelProperty("收支类型：IN、收入 OUT、支出 ")
	private InOrOutEnum inOrOut;

	@ApiModelProperty(value = "入账状态 WAIT 待入账 FROZEN 冻结入账 RECORDED 已入账 CANCEL 退费 ")
	private PostStatusEnum postStatus;

	@ApiModelProperty("业务类型：PRACTICE、陪练课 LIVE、直播课 VIDEO、视频课 MUSIC、乐谱 ACTI_REGIST、活动报名 WITHDRAWAL、提现 " +
			"LIVE_SHARE、直播课分润 VIDEO_SHARE、视频课分润 MUSIC_SHARE、乐谱分润 VIP_SHARE、会员分润 MALL_SHARE、商品分润 ACTI_REGIST_SHARE、活动报名分润 ")
	private AccountBizTypeEnum bizType;

	@ApiModelProperty("查询时间（yyyy-mm） ")
	private String searchDate;

	@ApiModelProperty(value = "交易开始时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime startTime;

	@ApiModelProperty(value = "交易结束时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private LocalDateTime endTime;
	@ApiModelProperty("购买学生 ")
	private String username;

	public Long getUserId() {
		return userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public InOrOutEnum getInOrOut() {
		return inOrOut;
	}

	public void setInOrOut(InOrOutEnum inOrOut) {
		this.inOrOut = inOrOut;
	}

	public AccountBizTypeEnum getBizType() {
		return bizType;
	}

	public void setBizType(AccountBizTypeEnum bizType) {
		this.bizType = bizType;
	}

	public String getSearchDate() {
		return searchDate;
	}

	public void setSearchDate(String searchDate) {
		this.searchDate = searchDate;
	}

	public LocalDateTime getStartTime() {
		return startTime;
	}

	public void setStartTime(LocalDateTime startTime) {
		this.startTime = startTime;
	}

	public LocalDateTime getEndTime() {
		return endTime;
	}

	public void setEndTime(LocalDateTime endTime) {
		this.endTime = endTime;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public PostStatusEnum getPostStatus() {
		return postStatus;
	}

	public void setPostStatus(PostStatusEnum postStatus) {
		this.postStatus = postStatus;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}