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 模型 - 全量事件记录）。
 * 每次 join / inactive 都独立成一条记录，nickname 在写入时快照不再回查。
 */
@TableName("rdms_task_assignee_log")
@Data
@EqualsAndHashCode(callSuper = true)
public class TaskAssigneeLogDO extends BaseDO {

    /**
     * 主键 ID
     */
    @TableId
    private Long id;
    /**
     * 任务编号
     */
    private Long taskId;
    /**
     * 被操作的协办人用户编号
     */
    private Long userId;
    /**
     * 被操作人昵称快照
     */
    private String userNicknameSnapshot;
    /**
     * 事件类型：join / inactive
     */
    private String actionType;
    /**
     * 原因：inactive 必填，join 可空
     */
    private String reason;
    /**
     * 操作人用户编号
     */
    private Long operatorUserId;
    /**
     * 操作人昵称快照
     */
    private String operatorNicknameSnapshot;
    /**
     * 事件时间
     */
    private LocalDateTime actionTime;

}
