/**
 * 消息服务相关 types - 根据后端 VO 和 DTO 转换
 */

import { BaseVO, BaseDTO } from "@/types/base"

// MessageVO - 消息（包含消息详情和发送范围）
export interface MessageVO extends BaseVO {
  /** 消息ID */
  messageId?: string
  /** 消息标题 */
  title?: string
  /** 消息内容 */
  content?: string
  /** 消息类型 */
  type?: string
  /** 消息状态 */
  status?: string
  /** 消息发送范围列表 */
  messageRanges?: MessageRangeChannelVO[]
  /** 消息接收记录列表（管理员查看时使用） */
  messageReceivers?: TbMessageReceiverDTO[]
}

// MessageRangeChannelVO - 消息发送范围
export interface MessageRangeChannelVO extends BaseVO {
  /** 发送范围ID */
  rangeId?: string
  /** 消息ID */
  messageId?: string
  /** 渠道类型 */
  channelType?: string
  /** 渠道名称 */
  channelName?: string
  /** 接收人范围 */
  recipientRange?: string
  /** 接收人范围名称 */
  recipientRangeName?: string
}

// TbMessageReceiverDTO - 消息接收记录
export interface TbMessageReceiverDTO extends BaseDTO {
  /** 接收记录ID */
  receiverId?: string
  /** 消息ID */
  messageId?: string
  /** 接收人ID */
  userId?: string
  /** 接收人名称 */
  userName?: string
  /** 接收状态 */
  status?: string
  /** 接收时间 */
  receiveTime?: string
  /** 读取时间 */
  readTime?: string
}

// TbMessageDTO - 消息DTO（创建和更新）
export interface TbMessageDTO extends BaseDTO {
  /** 消息ID */
  messageId?: string
  /** 消息标题 */
  title?: string
  /** 消息内容 */
  content?: string
  /** 消息类型 */
  type?: string
  /** 消息状态 */
  status?: string
}
