package org.dromara.payment.bill.domain;

import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.payment.common.domain.BusId;

import java.io.Serial;

/**
 * 账单明细对象 mer_bill_detail
 *
 * @author LionLi
 * @date 2024-04-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mer_bill_detail")
public class MerBillDetail extends BusId {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 项目子编号
     */
    private String cno;

    /**
     * 流水号(系统内部编号)
     */
    private String busNo;

    /**
     * 账单批次号
     */
    private String billNo;

    /**
     * 账单id
     */
    private Long billId;

    /**
     * 自雇者id
     */
    private Long workerId;

    /**
     * 姓名
     */
    private String workerName;

    /**
     * 手机号
     */
    private String workerPhone;

    /**
     * 自雇者报名id
     */
    private Long workerEnrollId;

    /**
     * 身份证号
     */
    private String cardId;

    /**
     * 银行类型（字典）
     */
    private String bankType;

    /**
     * 银行账号
     */
    private String bankCard;

    /**
     * 银行账户id
     */
    private Integer bankAccId;

    /**
     * 开户行
     */
    private String bankCheque;

    /**
     * 账单金额(个人应得)
     */
    private Long money;

    /**
     * 个税
     */
    private Long raise;

    /**
     * 实收金额(账单金额-个人承担的服务费)（到手金额）
     */
    private Long amount;

    /**
     * 支付结果（0:待支付 1:成功 2:失败 3:支付中 4:已取消）
     */
    private Integer payStatus;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 支付结果备注
     */
    private String payRemark;

    /**
     * B2C回执单地址
     */
    private String payReceipt;

    /**
     * 服务费(分)
     */
    private Long serviceChargeMoney;

    /**
     * 添加时间
     */
    private Date addTime;

    /**
     * 交易号(银行流水号)
     */
    private String bankNo;

    /**
     * 计算代理费金额（公司开票金额C/个人应得金额P）
     */
    private Long agentMoney;

    /**
     * 是否退款（0:否 1:是）
     */
    private Integer isRefund;

    /**
     * 退款时间
     */
    private Date refundTime;

    /**
     * 三方订单号
     */
    private String outNo;

    /**
     * 是否三方订单（0:否 1:是）
     */
    private Long isOut;

    /**
     * 结算通道
     */
    private String passage;

    /**
     * 项目id
     */
    private Long taskId;

    /**
     * 项目编号
     */
    private String taskNo;

    /**
     * 结算中心id
     */
    private Long sydId;

    /**
     * 结算中心编号
     */
    private String sydNo;

    /**
     * 运营商编号
     */
    private String opNo;

    /**
     * 运营商id
     */
    private Long opId;

    /**
     * 代理商id
     */
    private Long channelId;

    /**
     * 代理商编号
     */
    private String channelNo;

    /**
     * 代理商上下级关系编码
     */
    private String channelCode;

    /**
     * 商户id
     */
    private Long merId;

    /**
     * 商户编号
     */
    private String merNo;

    /**
     * 业务类型(1:委托代征，2:自然人代开，3:个体户注册 4:临时税务登记 5：资金代发 6：派遣&外包
     */
    private Integer busType;

    /**
     * B2B回执单地址
     */
    private String payReceiptB2b;

    /**
     * 产品编号
     */
    private String proNo;

    /**
     * 计费模式(1:个人应得计费、2:开票金额计费)
     */
    private Integer chargeMode;

    /**
     * 运营商服务费率
     */
    private BigDecimal opServiceChargeRate;

    /**
     * 运营商分润(分)
     */
    private Long opServiceChargeMoney;

    /**
     * 孵化中心服务费率
     */
    private BigDecimal fhzxServiceChargeRate;

    /**
     * 孵化中心收益(分)
     */
    private Long fhzxServiceChargeMoney;

    /**
     * 孵化中心id
     */
    private Long fhzxChannelId;

    /**
     * 总监服务费率
     */
    private BigDecimal zjServiceChargeRate;

    /**
     * 总监收益(分)
     */
    private Long zjServiceChargeMoney;

    /**
     * 总监id
     */
    private Long zjChannelId;

    /**
     * 业务员服务费率
     */
    private BigDecimal ywyServiceChargeRate;

    /**
     * 业务员收益(分)
     */
    private Long ywyServiceChargeMoney;

    /**
     * 业务员id
     */
    private Long ywyChannelId;

    /**
     * 分润状态(1:冻结中 2:待解冻 3:分润成功 4:分润撤消 5:分润异常)
     */
    private Integer channelHalveStatus;

    /**
     * 转账附言
     */
    private String billRemark;

    /**
     * 服务商服务费率
     */
    private BigDecimal sydServiceChargeRate;

    //商户服务费率
    private BigDecimal shServiceChargeRate;

    /**
     * 服务商分润(分)
     */
    private Long sydServiceChargeMoney;

    /**
     * 运营商分润状态（0:待支付 1:成功 2:失败 3:支付中）
     */
    private Integer opHalveStatus;

    /**
     * 运营商分润失败原因
     */
    private String opHalveRemark;

    /**
     * 服务商分润状态（0:待支付 1:成功 2:失败 3:支付中）
     */
    private Integer sydHalveStatus;

    /**
     * 服务商分润失败原因
     */
    private String sydHalveRemark;

    /**
     * 平台分润(分)
     */
    private Long ptServiceChargeMoney;

    /**
     * 平台分润状态（0:待支付 1:成功 2:失败 3:支付中）
     */
    private Integer ptHalveStatus;

    /**
     * 平台分润失败原因
     */
    private String ptHalveRemark;

    private Integer  thridRecruit;

    private String  thridRecruitReason;


}
