package com.leromro.core.domain.vo;

import com.leromro.common.annotation.Excel;
import com.leromro.framework.handler.DictLaberHandler;
import lombok.Data;

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

/**
 * 订单费用结算申请对象 l_order_settlement_application
 * 
 * @author lsd
 * @date 2025-05-13
 */
@Data
public class OrderSettlementApplicationListVO {
    // 结算申请记录id
    private Long id;
    // 申请时间
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    // 申请人
    @Excel(name = "申请人")
    private String applyUserName;

    // 申请组织（区域/服务中心）
    @Excel(name = "申请组织（区域/服务中心）")
    private String applicant;

    // 订单id
    @Excel(name = "订单id")
    private Long secondOrderId;

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

    // 下单时间
    @Excel(name = "下单时间",  width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    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;

    // 服务中心抽成金额
    @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;

    // 审核人名称
    @Excel(name = "审核人名称")
    private String auditorUserNickName;

    // 审核时间
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date auditorTime;

    // 审核状态 10审核中 20审核通过 30审核未通过 40已取消
    @Excel(name = "审核状态 10审核中 20审核通过 30审核未通过 40已取消",  handler = DictLaberHandler.class, args = { "auditor_status"})
    private String auditorStatus;

    // 审核结果说明
    @Excel(name = "审核结果说明")
    private String auditorRemark;
}
