package com.fs.doctor.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import com.fs.provider.enums.BalanceChangeTypeEnum;
import com.fs.provider.enums.DoctorWalletBizTypeEnum;
import com.fs.task.enums.ChangeReasonEnum;
import lombok.Data;

/**
 * 医生积分变动记录对象 doctor_balance_log
 *
 * @author fs
 * @date 2026-01-26
 */
@Data
public class DoctorBalanceLog
{
    private static final long serialVersionUID = 1L;

    /** 积分变动记录ID */
    private String id;
    /** 公司Id */
    private Long companyId;
    @Excel(name = "公司名称")
    /** 公司名称（查询展示用） */
    private String companyName;
    /**
     * {@link DoctorWalletBizTypeEnum }
     * 业务id
     * */
    private Long businessId;
    /** 业务类别 */
    private String businessType;

    /** 医生ID */
    @Excel(name = "医生ID")
    private Long doctorId;

    /** 医生姓名 */
    @Excel(name = "医生姓名")
    private String doctorName;

    /** 积分变动数量，扣减为负数 */
    @Excel(name = "积分变动数量，扣减为负数")
    private BigDecimal changeMoney;

    /**
     * {@link BalanceChangeTypeEnum}
     * 变动类型，1-扣减，2-增加，3-调整等
     * */
    @Excel(name = "变动类型，1-扣减，2-增加，3-调整等")
    private Long changeType;

    /** 关联任务*/
    @Excel(name = "关联任务")
    private Long relatedTaskId;

    /**
     * {@link ChangeReasonEnum}
     * 积分变动原因或备注
     * */
    @Excel(name = "积分变动原因或备注")
    private String changeReason;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateAt;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createAt;

    private String createBy;
    private String updateBy;


}
