2026-08-16 13:25:10 +07:00
|
|
|
import { trpc } from "@/lib/trpc/client";
|
2026-07-26 11:27:21 +07:00
|
|
|
import type { AttachmentRecord, MessageRecord } from "@/lib/types";
|
|
|
|
|
|
|
|
|
|
export const messagesApi = {
|
|
|
|
|
list: (
|
|
|
|
|
guildId: string,
|
|
|
|
|
limit?: number,
|
|
|
|
|
channelId?: string,
|
|
|
|
|
cursor?: string,
|
2026-08-16 13:25:10 +07:00
|
|
|
) =>
|
|
|
|
|
trpc.messages.list.query({
|
|
|
|
|
guildId,
|
|
|
|
|
limit,
|
|
|
|
|
channelId,
|
|
|
|
|
cursor,
|
|
|
|
|
}) as unknown as Promise<{
|
|
|
|
|
data: MessageRecord[];
|
|
|
|
|
nextCursor: string | null;
|
|
|
|
|
}>,
|
2026-07-26 11:27:21 +07:00
|
|
|
|
2026-08-16 13:25:10 +07:00
|
|
|
getByChannel: (channelId: string, limit?: number, cursor?: string) =>
|
|
|
|
|
trpc.messages.byChannel.query({
|
|
|
|
|
channelId,
|
|
|
|
|
query: { channelId, limit, cursor },
|
|
|
|
|
}) as unknown as Promise<{
|
|
|
|
|
data: MessageRecord[];
|
|
|
|
|
nextCursor: string | null;
|
|
|
|
|
}>,
|
2026-07-26 11:27:21 +07:00
|
|
|
|
|
|
|
|
getDetail: (id: string) =>
|
2026-08-16 13:25:10 +07:00
|
|
|
trpc.messages.detail.query({ id }) as unknown as Promise<MessageRecord>,
|
2026-07-26 11:27:21 +07:00
|
|
|
|
2026-08-16 13:25:10 +07:00
|
|
|
getImages: (guildId: string, limit?: number) =>
|
|
|
|
|
trpc.messages.images.query({ guildId, limit }) as unknown as Promise<{
|
|
|
|
|
data: MessageRecord[];
|
|
|
|
|
nextCursor: string | null;
|
|
|
|
|
}>,
|
2026-07-26 11:27:21 +07:00
|
|
|
|
2026-08-01 10:59:54 +07:00
|
|
|
getAttachments: (
|
|
|
|
|
channelId: string,
|
|
|
|
|
limit?: number,
|
|
|
|
|
cursor?: string,
|
|
|
|
|
messageId?: string,
|
2026-08-16 13:25:10 +07:00
|
|
|
) =>
|
|
|
|
|
trpc.messages.attachmentsByChannel.query({
|
|
|
|
|
channelId,
|
|
|
|
|
query: { channelId, limit, cursor, messageId },
|
|
|
|
|
}) as unknown as Promise<{
|
|
|
|
|
data: AttachmentRecord[];
|
|
|
|
|
nextCursor: string | null;
|
|
|
|
|
}>,
|
2026-07-26 11:27:21 +07:00
|
|
|
|
2026-08-16 13:25:10 +07:00
|
|
|
getReview: (limit?: number, channelId?: string) =>
|
|
|
|
|
trpc.messages.review.query({ limit, channelId }) as unknown as Promise<{
|
|
|
|
|
results: MessageRecord[];
|
|
|
|
|
limit: number;
|
|
|
|
|
cursor: null;
|
|
|
|
|
}>,
|
2026-07-26 11:27:21 +07:00
|
|
|
|
2026-08-16 13:25:10 +07:00
|
|
|
// Analysis search (formerly /api/analysis/search → tRPC analysis.search)
|
|
|
|
|
search: (q: string, limit?: number) =>
|
|
|
|
|
trpc.analysis.search.query({ q, limit }) as unknown as Promise<{
|
|
|
|
|
results: MessageRecord[];
|
|
|
|
|
}>,
|
2026-07-26 11:27:21 +07:00
|
|
|
};
|