package com.yc.ship.module.trade.controller.admin.report.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.time.LocalDate;
import java.time.LocalDateTime;

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

/**
 * 银行流水交易明细分页查询 Request VO
 *
 * @author auto-generated
 */
@Schema(description = "管理后台 - 银行流水交易明细分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BankTransactionDetailsPageReqVO extends PageParam {

    @Schema(description = "交易时间开始", example = "2024-01-01 00:00:00")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime transactionTimeStart;

    @Schema(description = "交易时间结束", example = "2024-12-31 23:59:59")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime transactionTimeEnd;

    @Schema(description = "开航时间", example = "2024-03-01")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate boardDate;

    @Schema(description = "订单号/账单号", example = "CJXLY-20260421-YC-45")
    private String orderNo;

    @Schema(description = "客户名称(组团社)", example = "重庆蓝波湾国际旅行社有限公司")
    private String customerName;

    @Schema(description = "支付方式", example = "1")
    private Integer paymentMethod;

    @Schema(description = "交易类型：1-支付 2-退款 3-充值 4-账单还款", example = "1")
    private Integer transactionType;

}
