package cn.iocoder.yudao.module.system.dal.dataobject.hr;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.system.controller.admin.hr.vo.payslip.PayslipDetail;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

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

@TableName(value = "hr_payslip", autoResultMap = true)
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PayslipDO extends BaseDO {

    /**
     * 主键ID，自增
     */
    @TableId
    private Long id;

    /**
     * 用户编号
     */
    private Long userId;

    /**
     * 部门编号
     */
    private Long deptId;

    /**
     * 所属公司编号
     */
    private Long companyDeptId;

    /**
     * 所属公司名称
     */
    private String companyName;

    /**
     * 薪资日期 YYYY-MM
     */
    private String salaryDate;

    /**
     * 实发工资
     */
    private BigDecimal salary;

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

    /**
     * 银行卡号
     */
    private String bankNo;

    /**
     * 详情
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<PayslipDetail> details;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否确认
     */
    private Integer isConfirm;

    /**
     * 用户名称
     */
    @TableField(exist = false)
    private String userName;

    /**
     * 用户部门名称
     */
    @TableField(exist = false)
    private String deptName;
}
