import { eventListSchema, listEventsQuerySchema, type EventItem, type ListEventsQuery, } from "@mmapp/contracts/events" import { requestJson } from "@/shared/api/http-client" type ListEventsResponse = { events: unknown } export async function listEvents( baseUrl: string, query: Partial = {}, ): Promise { const parsedQuery = listEventsQuerySchema.parse(query) const search = new URLSearchParams() search.set("limit", String(parsedQuery.limit)) if (parsedQuery.level) search.set("level", parsedQuery.level) if (parsedQuery.sourceModule) search.set("sourceModule", parsedQuery.sourceModule) if (parsedQuery.from) search.set("from", parsedQuery.from) if (parsedQuery.to) search.set("to", parsedQuery.to) const path = `/api/events?${search.toString()}` const payload = await requestJson(baseUrl, path) return eventListSchema.parse(payload.events) }