package com.ghy.order.domain;

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

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ghy.common.annotation.Excel;
import com.ghy.common.core.domain.BaseEntity;

/**
 * 售后记录对象 after_service_record
 *
 * @author clunt
 * @date 2022-09-25
 */
public class AfterServiceRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private String id;

    /** 客户原因类型 */
    @Excel(name = "客户原因类型")
    private Long customerReasonType;

    /** 客户具体原因 */
    @Excel(name = "客户具体原因")
    private String customerReason;

    /** 子单id */
    @Excel(name = "子单id")
    private Long orderDetailId;

    /** 操作原因：1为申请退款，2为发起售后 */
    @Excel(name = "操作原因：1为申请退款，2为发起售后")
    private Long operType;

    /** 师傅反馈结果：0为拒绝，1为同意，2为上门补做/重做 */
    @Excel(name = "师傅反馈结果：0为拒绝，1为同意，2为上门补做/重做")
    private Long workerFeedbackResult;

    /** 师傅反馈原因类型：1为客户原因，2为师傅原因，3为其他 */
    @Excel(name = "师傅反馈原因类型：1为客户原因，2为师傅原因，3为其他")
    private Long workerFeedbackReasonType;

    /** 师傅反馈原因描述 */
    @Excel(name = "师傅反馈原因描述")
    private String workerFeedbackReason;

    /** 本单退款金额 */
    @Excel(name = "本单退款金额")
    private BigDecimal refund;

    /** 协商后的退款金额 */
    @Excel(name = "协商后的退款金额")
    private BigDecimal agreedRefund;

    /** 客户最终确认：0为不同意，1为同意 */
    @Excel(name = "客户最终确认：0为不同意，1为同意")
    private Long customerFinalCheck;

    @Excel(name = "最终原路返还的金额")
    private BigDecimal originalRefund;

    private Date refundApplyTime;

    private boolean excludeAfterServiceFinished;

    private List<AfterServiceImgs> imgsList;


    public List<AfterServiceImgs> getImgsList() {
        return imgsList;
    }

    public void setImgsList(List<AfterServiceImgs> imgsList) {
        this.imgsList = imgsList;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setCustomerReasonType(Long customerReasonType)
    {
        this.customerReasonType = customerReasonType;
    }

    public Long getCustomerReasonType()
    {
        return customerReasonType;
    }
    public void setCustomerReason(String customerReason)
    {
        this.customerReason = customerReason;
    }

    public String getCustomerReason()
    {
        return customerReason;
    }
    public void setOrderDetailId(Long orderDetailId)
    {
        this.orderDetailId = orderDetailId;
    }

    public Long getOrderDetailId()
    {
        return orderDetailId;
    }
    public void setOperType(Long operType)
    {
        this.operType = operType;
    }

    public Long getOperType()
    {
        return operType;
    }
    public void setWorkerFeedbackResult(Long workerFeedbackResult)
    {
        this.workerFeedbackResult = workerFeedbackResult;
    }

    public Long getWorkerFeedbackResult()
    {
        return workerFeedbackResult;
    }
    public void setWorkerFeedbackReasonType(Long workerFeedbackReasonType)
    {
        this.workerFeedbackReasonType = workerFeedbackReasonType;
    }

    public Long getWorkerFeedbackReasonType()
    {
        return workerFeedbackReasonType;
    }
    public void setWorkerFeedbackReason(String workerFeedbackReason)
    {
        this.workerFeedbackReason = workerFeedbackReason;
    }

    public String getWorkerFeedbackReason()
    {
        return workerFeedbackReason;
    }
    public void setRefund(BigDecimal refund)
    {
        this.refund = refund;
    }

    public BigDecimal getRefund()
    {
        return refund;
    }
    public void setAgreedRefund(BigDecimal agreedRefund)
    {
        this.agreedRefund = agreedRefund;
    }

    public BigDecimal getAgreedRefund()
    {
        return agreedRefund;
    }
    public void setCustomerFinalCheck(Long customerFinalCheck)
    {
        this.customerFinalCheck = customerFinalCheck;
    }

    public Long getCustomerFinalCheck()
    {
        return customerFinalCheck;
    }

    public BigDecimal getOriginalRefund() {
        return originalRefund;
    }

    public void setOriginalRefund(BigDecimal originalRefund) {
        this.originalRefund = originalRefund;
    }

    public boolean isExcludeAfterServiceFinished() {
        return excludeAfterServiceFinished;
    }

    public void setExcludeAfterServiceFinished(boolean excludeAfterServiceFinished) {
        this.excludeAfterServiceFinished = excludeAfterServiceFinished;
    }

    public Date getRefundApplyTime() {
        return refundApplyTime;
    }

    public void setRefundApplyTime(Date refundApplyTime) {
        this.refundApplyTime = refundApplyTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("customerReasonType", getCustomerReasonType())
                .append("customerReason", getCustomerReason())
                .append("orderDetailId", getOrderDetailId())
                .append("operType", getOperType())
                .append("workerFeedbackResult", getWorkerFeedbackResult())
                .append("workerFeedbackReasonType", getWorkerFeedbackReasonType())
                .append("workerFeedbackReason", getWorkerFeedbackReason())
                .append("refund", getRefund())
                .append("agreedRefund", getAgreedRefund())
                .append("originalRefund", getOriginalRefund())
                .append("refundApplyTime", getRefundApplyTime())
                .append("customerFinalCheck", getCustomerFinalCheck())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("excludeAfterServiceFinished", isExcludeAfterServiceFinished())
                .toString();
    }
}
