package com.yc.ship.module.trade.controller.admin.order.vo.refund;

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 java.util.List;

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;


@Schema(description = "管理后台 - 退款记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class RefundRecordPageReqVO extends PageParam {

    @Schema(description = "退票批次ID", example = "14296")
    private Long refundId;

    @Schema(description = "支付平台退款单号")
    private String refundNo;

    @Schema(description = "支付平台支付订单号")
    private String paymentNo;

    @Schema(description = "支付ID", example = "29029")
    private String orderPayId;

    @Schema(description = "退款金额")
    private BigDecimal refundAmount;

    @Schema(description = "退款状态", example = "2")
    private Integer refundStatus;

    @Schema(description = "商户号")
    private String merchantNo;

    @Schema(description = "微信或支付宝平台的用户openId", example = "28880")
    private String openId;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTime;

    @Schema(description = "退款时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String refundTime;

    @Schema(description = "退款时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String refundTimeStart;

    @Schema(description = "退款时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private String refundTimeEnd;

    @Schema(description = "出行时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String travelDate;

    @Schema(description = "出行时间", example = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String travelDateStart;

    @Schema(description = "出行时间", example = "")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String travelDateEnd;

    @Schema(description = "证件号")
    private String credentialNo;

    @Schema(description = "联系人")
    private String name;

    @Schema(description = "联系人手机号")
    private String mobile;

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

    @Schema(description = "订单状态")
    private Integer orderStatus;

    @Schema(description = "来源ID")
    private String sourceId;

    @Schema(description = "船ID")
    private Long shipId;

    @Schema(description = "线路ID")
    private Long routeId;

    @Schema(description = "航次ID")
    private Long voyageId;

    @Schema(description = "分销商分组ID", example = "张三")
    private List<String> otaCateIds;

    @Schema(description = "分销商ID", example = "张三")
    private String otaId;
}