package com.zhongshu.card.client.model.payment;

import com.github.microservice.types.OrderState;
import com.github.microservice.types.deviceUse.DeviceType;
import com.github.microservice.types.payment.PaymentType;
import com.zhongshu.card.client.model.devices.DeviceInfoModel;
import com.zhongshu.card.client.type.RefundState;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;

@Data
public class ExpenseFlowSearchParam {

    private String projectOid;

    @Schema(description = "开始时间")
    private Long startTime;

    @Schema(description = "结束时间")
    private Long endTime;

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

    @Schema(description = "支付编号")
    private String paymentNo;

    @Schema(description = "支付方式")
    private PaymentType paymentType;

    @Schema(description = "支付开始时间")
    private Long payStartTime;

    @Schema(description = "支付结束时间")
    private Long payEndTime;

    @Schema(description = "支付金额")
    private BigDecimal payAmount;

    @Schema(description = "订单的总体状态，待付款、支付中、已支付、已退款")
    private OrderState orderState;

    @Schema(description = "姓名")
    private String userName;

    @Schema(description = "用户编号")
    private String userCode;

    @Schema(description = "机构名称")
    private String userOrgName;

    @Schema(description = "机构id")
    private String orgId;

    @Schema(description = "部门id")
    private String departmentId;

    @Schema(description = "部门名称")
    private String departmentName;

    @Schema(description = "设备编号")
    private String deviceId;

    @Schema(description = "设备类型")
    private DeviceType deviceType;

    @Schema(description = "区域id")
    private String areaId;

    @Schema(description = "是否退款")
    private Boolean isRefund;

    @Schema(description = "退款订单号")
    private String refundNo;

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

    @Schema(description = "退款状态")
    private RefundState refundState;

    @Schema(description = "申请开始时间")
    private Long refundStartTime;

    @Schema(description = "退款结束时间")
    private Long refundEndTime;
}
