package com.ruoyi.credit.domain;

import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 合同员工关联对象 dc_contract_employee_link
 * 
 * @author ruoyi
 * @date 2025-12-23
 */
public class ContractEmployeeLink extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 关联ID */
    private Long linkId;

    /** 合同ID */
    @Excel(name = "合同ID")
    private Long contractId;

    /** 员工ID(可为空) */
    @Excel(name = "员工ID")
    private Long employeeId;

    /** 员工库ID(可为空) */
    @Excel(name = "员工库ID")
    private Long libraryId;

    /** 关联类型(INDIVIDUAL/LIBRARY) */
    @Excel(name = "关联类型")
    private String linkType;

    /** 分配角色 */
    @Excel(name = "分配角色")
    private String assignedRole;

    /** 关联日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "关联日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date linkDate;

    /** 关联状态 */
    @Excel(name = "关联状态")
    private String linkStatus;

    // 关联类型常量
    public static final String LINK_TYPE_INDIVIDUAL = "INDIVIDUAL";
    public static final String LINK_TYPE_LIBRARY = "LIBRARY";

    // 关联状态常量
    public static final String STATUS_ACTIVE = "ACTIVE";
    public static final String STATUS_INACTIVE = "INACTIVE";
    public static final String STATUS_COMPLETED = "COMPLETED";

    public void setLinkId(Long linkId) 
    {
        this.linkId = linkId;
    }

    public Long getLinkId() 
    {
        return linkId;
    }

    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }

    public void setEmployeeId(Long employeeId) 
    {
        this.employeeId = employeeId;
    }

    public Long getEmployeeId() 
    {
        return employeeId;
    }

    public void setLibraryId(Long libraryId) 
    {
        this.libraryId = libraryId;
    }

    public Long getLibraryId() 
    {
        return libraryId;
    }

    public void setLinkType(String linkType) 
    {
        this.linkType = linkType;
    }

    public String getLinkType() 
    {
        return linkType;
    }

    public void setAssignedRole(String assignedRole) 
    {
        this.assignedRole = assignedRole;
    }

    public String getAssignedRole() 
    {
        return assignedRole;
    }

    public void setLinkDate(Date linkDate) 
    {
        this.linkDate = linkDate;
    }

    public Date getLinkDate() 
    {
        return linkDate;
    }

    public void setLinkStatus(String linkStatus) 
    {
        this.linkStatus = linkStatus;
    }

    public String getLinkStatus() 
    {
        return linkStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("linkId", getLinkId())
            .append("contractId", getContractId())
            .append("employeeId", getEmployeeId())
            .append("libraryId", getLibraryId())
            .append("linkType", getLinkType())
            .append("assignedRole", getAssignedRole())
            .append("linkDate", getLinkDate())
            .append("linkStatus", getLinkStatus())
            .append("createTime", getCreateTime())
            .toString();
    }
}