package com.yd.csf.service.model;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 薪资单表
 * </p>
 *
 * @author zxm
 * @since 2026-05-08
 */
@Getter
@Setter
@TableName("salary")
public class Salary implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 薪资单表唯一业务ID
     */
    @TableField("salary_biz_id")
    private String salaryBizId;

    /**
     * 发放编号
     */
    @TableField("salary_no")
    private String salaryNo;

    /**
     * 出账记录业务id
     */
    @TableField("fortune_account_biz_id")
    private String fortuneAccountBizId;

    /**
     * 出账业务编号
     */
    @TableField("business_no")
    private String businessNo;

    /**
     * 转介人名称
     */
    @TableField("broker_name")
    private String brokerName;

    /**
     * 转介人业务id
     */
    @TableField("broker_biz_id")
    private String brokerBizId;

    /**
     * 转介人内部编号
     */
    @TableField("internal_number")
    private String internalNumber;

    /**
     * 薪资月份（同出账月，如：202605）
     */
    @TableField("month")
    private String month;

    /**
     * 应发总金额（单位：HKD）
     */
    @TableField("gross_amount")
    private BigDecimal grossAmount;

    /**
     * 实发总金额（单位：HKD）
     */
    @TableField("paid_amount")
    private BigDecimal paidAmount;

    /**
     * MPF事项总金额（单位：HKD）
     */
    @TableField("mpf_amount")
    private BigDecimal mpfAmount;

    /**
     * 其他调整总金额（单位：HKD）
     */
    @TableField("other_amount")
    private BigDecimal otherAmount;

    /**
     * 其他调整的备注
     */
    @TableField("other_remark")
    private String otherRemark;

    /**
     * 薪资单状态：1-待提交 2-待核对 3-已核对 4-退回 5-已推送 6-已取消
     */
    @TableField("status")
    private String status;

    /**
     * 取消薪资备注
     */
    @TableField("cancel_remark")
    private String cancelRemark;

    /**
     * 退回备注
     */
    @TableField("return_remark")
    private String returnRemark;

    /**
     * 通用备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 删除标识: 0-正常, 1-删除
     */
    @TableField("is_deleted")
    private Integer isDeleted;

    /**
     * 创建人ID
     */
    @TableField("creator_id")
    private String creatorId;

    /**
     * 创建人名称
     */
    @TableField(value = "creator_name", fill = FieldFill.INSERT)
    private String creatorName;

    /**
     * 更新人ID
     */
    @TableField("updater_id")
    private String updaterId;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
}
