import { requestClient } from '#/api/request';

export namespace ImChannelMessageApi {
  /** 频道消息 */
  export interface ChannelMessageRespVO {
    id: number;
    clientMessageId?: string;
    channelId: number;
    materialId: number;
    type: number;
    content: string;
    receiptStatus?: number;
    sendTime: string;
  }
}


/** 拉取当前用户应收的频道消息（离线增量）；按 minId 游标分页 */
export function pullChannelMessageList(
  params: { minId: number; size?: number },
  signal?: AbortSignal,
) {
  return requestClient.get<ImChannelMessageApi.ChannelMessageRespVO[]>(
    '/im/channel/message/pull',
    { params, signal },
  );
}

/** 上报频道消息已读位置；切到频道会话或拉到新消息后调 */
export function readChannelMessages(channelId: number, messageId: number) {
  return requestClient.put<boolean>('/im/channel/message/read', undefined, {
    params: { channelId, messageId },
  });
}
