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.toolset.mybatis.page.QueryInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @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("收支类型：IN、收入 OUT、支出 ")
	private InOrOutEnum inOrOut;

	@ApiModelProperty("业务类型：PRACTICE、陪练课 LIVE、直播课 MUSIC、乐谱 WITHDRAWAL、提现 ")
	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;

	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;
	}
}