package org.xyzh.api.message.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.xyzh.common.vo.BaseVO;

/**
 * @description    消息发送范围和渠道VO（Range和Channel的平铺组合）
 * @filename    MessageRangeChannelVO.java
 * @author    yslg
 * @copyright yslg
 * @since 2025-11-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "消息发送范围和渠道VO")
public class MessageRangeChannelVO extends BaseVO {

    // ========== Range相关字段 ==========
    @Schema(description = "消息ID")
    private String messageId;
    
    @Schema(description = "目标类型：user-指定用户/dept-部门/role-角色/all-全员")
    private String targetType;

    @Schema(description = "目标ID（用户、部门、角色ID等，all类型时为空）")
    private String targetId;

    @Schema(description = "目标名称（用户名、部门名、角色名等，用于前端展示）")
    private String targetName;

    // ========== Channel相关字段 ==========
    @Schema(description = "渠道编码：app/sms/email/wechat/dingtalk等")
    private String channelCode;

    @Schema(description = "渠道名称")
    private String channelName;

    @Schema(description = "渠道描述")
    private String channelDesc;

    @Schema(description = "渠道状态：enabled-启用/disabled-禁用/maintenance-维护中")
    private String channelStatus;

    @Schema(description = "渠道优先级（数字越大优先级越高）")
    private Integer channelPriority;
}
