package com.njcn.rdms.module.project.dal.dataobject.project.task;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.rdms.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 任务协办人活跃记录表（B 模型 - 多行周期记录）。
 * 同一 userId 在同一任务内允许多条历史记录，但任意时刻只有一段 removedAt 为 null（活跃）。
 * 失效时设置 removedAt（不动 BaseDO.deleted），失效原因和时间快照同步写入 {@link TaskAssigneeLogDO}。
 */
@TableName("rdms_task_assignee")
@Data
@EqualsAndHashCode(callSuper = true)
public class TaskAssigneeDO extends BaseDO {

    /**
     * 主键 ID
     */
    @TableId
    private Long id;
    /**
     * 任务编号
     */
    private Long taskId;
    /**
     * 协办人用户编号
     */
    private Long userId;
    /**
     * 加入时间
     */
    private LocalDateTime joinedAt;
    /**
     * 失效时间，为 null 表示当前活跃
     */
    private LocalDateTime removedAt;

}
