package com.leromro.core.domain.vo;

import com.leromro.common.annotation.Excel;
import com.leromro.framework.handler.DictLaberHandler;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 后台管理订单结算页面
 */
@Data
public class SettlementOrderListVO {

    // 订单id
    private Long orderId;

    // 订单号
    @Excel(name = "订单号")
    private String outTradeNo;

    // 下单时间
    @Excel(name = "下单时间")
    private Date orderTime;

    // 用户名称
    @Excel(name = "用户名称")
    private String userNickName;

    // 志愿者名称
    @Excel(name = "志愿者名称")
    private String volunteerName;

    // 服务项目内容
    @Excel(name = "服务项目内容")
    private String businessDescribe;

    // 服务项目类型
    @Excel(name = "服务项目类型")
    private String businessTierName;

    // 服务开始时间
    @Excel(name = "服务开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date serviceStartTime;

    // 服务结束时间
    @Excel(name = "服务结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date serviceEndTime;

    // 订单总金额
    @Excel(name = "订单总金额(元)")
    private BigDecimal orderTotalPrice;

    // 订单状态
    @Excel(name = "订单状态",handler = DictLaberHandler.class, args = { "order_status"})
    private String orderStatus;

    // 区域公司
    @Excel(name = "区域公司")
    private String areaName;

    // 服务中心
    @Excel(name = "服务中心")
    private String serviceCentreName;

    // 区域公司抽成金额
    @Excel(name = "区域公司抽成金额(元)")
    private BigDecimal areaDistributionAmount;

    // 区域公司结算状态
    @Excel(name = "区域公司结算状态", handler = DictLaberHandler.class, args = { "area_settlement_status"})
    private String areaSettlementStatus;

    // 区域公司结算时间
    @Excel(name = "区域公司结算时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date areaSettlementTime;

    /**
     * 区域管理费用付款方式 1银行卡
     */
    @ApiModelProperty("区域管理费用付款方式 1银行卡")
    private String areaPayerMethod;

    /**
     * 区域管理费用付款账户
     */
    @ApiModelProperty("区域管理费用付款账户")
    private String areaPayerAccount;

    /**
     * 区域管理费用付款银行名称
     */
    @ApiModelProperty("区域管理费用付款银行名称")
    private String areaPayerAccountBankName;

    /**
     * 区域收款方式 1银行卡
     */
    @ApiModelProperty("区域收款方式 1银行卡")
    private String areaPayeeMethod;

    /**
     * 区域收款账号
     */
    @ApiModelProperty("区域收款账号")
    private String areaPayeeAccount;

    /**
     * 区域收款银行名称
     */
    @ApiModelProperty("区域收款银行名称")
    private String areaPayeeBankName;

    /**
     * 区域收款人姓名
     */
    @ApiModelProperty("区域收款人姓名")
    private String areaPayeeName;


    // 服务中心抽成金额
    @Excel(name = "服务中心抽成金额(元)")
    private BigDecimal serviceCentreDistributionAmount;

    // 服务中心结算状态
    @Excel(name = "服务中心结算状态", handler = DictLaberHandler.class, args = { "service_centre_settlement_stauts"})
    private String serviceCentreSettlementStatus;

    // 服务中心结算时间
    @Excel(name = "服务中心结算时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date serviceCentreSettlementTime;

    /**
     * 服务中心费用付款方式 1银行卡
     */
    @ApiModelProperty("服务中心费用付款方式 1银行卡")
    private String serviceCentrePayerMethod;

    /**
     * 服务中心费用付款账户
     */
    @ApiModelProperty("服务中心费用付款账户")
    private String serviceCentrePayerAccount;

    /**
     * 服务中心费用付款银行名称
     */
    @ApiModelProperty("服务中心费用付款银行名称")
    private String serviceCentrePayerBankName;

    /**
     * 服务中心收款方式 1银行卡
     */
    @ApiModelProperty("服务中心收款方式 1银行卡")
    private String serviceCentrePayeeMethod;

    /**
     * 服务中心收款账号
     */
    @ApiModelProperty("服务中心收款账号")
    private String serviceCentrePayeeAccount;

    /**
     * 服务中心收款银行名称
     */
    @ApiModelProperty("服务中心收款银行名称")
    private String serviceCentrePayeeBankName;

    /**
     * 服务中心收款人姓名
     */
    @ApiModelProperty("服务中心收款人姓名")
    private String serviceCentrePayeeName;
}
