package com.yc.ship.module.otc.controller.admin.storetradelog.vo;

import com.yc.ship.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

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

import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 旅行社门店交易记录：余额充值、预付购票、预付退款、余额购票分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class StoreTradeLogPageReqVO extends PageParam {

    @Schema(description = "分销商ID", example = "19597")
    private Long distributorId;

    @Schema(description = "门店ID", example = "19597")
    private Long storeId;

    @Schema(description = "交易名称", example = "芋艿")
    private String tradeName;

    @Schema(description = "交易类型：1.管理员余额充值、2.管理员授信充值、3.余额购票、4.授信购票、5.余额退款、6.授信退款", example = "1")
    private Integer tradeType;

    @Schema(description = "交易前余额/交易前已用额度")
    private BigDecimal beforeBalance;

    @Schema(description = "交易后余额/交易后已用额度")
    private BigDecimal afterBalance;

    @Schema(description = "交易金额")
    private BigDecimal tradeAmount;

    @Schema(description = "交易类型 1.增加、2.减少")
    private Integer tradeMode;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

    @Schema(description = "订单号", example = "31383")
    private String orderId;

    @Schema(description = "订单号", example = "31383")
    private String orderNo;

    @Schema(description = "交易时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "类型 0.全部 1.余额 2.授信", example = "31383")
    private String type;

}
