package org.xyzh.common.dto.message;

import org.xyzh.common.dto.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 消息发送方式接收对象表实体类
 *
 * @description 存储消息的接收对象配置，包括发送方式、目标类型和作用域部门
 * @filename TbSysMessageTarget.java
 * @author Claude
 * @copyright xyzh
 * @since 2025-11-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class TbSysMessageTarget extends BaseDTO {
    private static final long serialVersionUID = 1L;

    /**
     * 消息ID（关联tb_sys_message.messageID）
     */
    private String messageID;

    /**
     * 发送方式：system-系统消息/email-邮件/sms-短信
     * 多选时逗号分隔，如：system,email
     */
    private String sendMethod;

    /**
     * 接收对象类型：dept-部门/role-角色/user-人员
     */
    private String targetType;

    /**
     * 接收对象ID（部门ID/角色ID/用户ID）
     */
    private String targetID;

    /**
     * 接收对象名称（冗余字段，便于展示）
     */
    private String targetName;

    /**
     * 作用域部门ID
     * - dept时：与targetID相同
     * - role时：表示该角色限定在哪个部门及其子部门范围内
     * - user时：用户所属部门ID
     */
    private String scopeDeptID;

    /**
     * 创建人ID
     */
    private String creator;

    /**
     * 更新人ID
     */
    private String updater;
}
