Files
Nexus/packages/api/src/router/timeline-entry-read.ts
T

42 lines
1.4 KiB
TypeScript

import { z } from "zod";
import { controllerProcedure, protectedProcedure } from "../trpc.js";
import {
TimelineWindowFiltersSchema,
} from "./timeline-read-shared.js";
import {
readMyTimelineEntriesView,
readTimelineEntries,
readTimelineEntriesDetail,
readTimelineEntriesView,
} from "./timeline-entry-procedure-support.js";
export const timelineEntryReadProcedures = {
getEntries: controllerProcedure
.input(TimelineWindowFiltersSchema)
.query(({ ctx, input }) => readTimelineEntries(ctx.db, input)),
getEntriesView: controllerProcedure
.input(TimelineWindowFiltersSchema)
.query(({ ctx, input }) => readTimelineEntriesView(ctx.db, input)),
getMyEntriesView: protectedProcedure
.input(TimelineWindowFiltersSchema)
.query(({ ctx, input }) => readMyTimelineEntriesView(ctx, input)),
getEntriesDetail: controllerProcedure
.input(
z.object({
startDate: z.string().optional(),
endDate: z.string().optional(),
durationDays: z.number().int().min(1).max(366).optional(),
resourceIds: z.array(z.string()).optional(),
projectIds: z.array(z.string()).optional(),
clientIds: z.array(z.string()).optional(),
chapters: z.array(z.string()).optional(),
eids: z.array(z.string()).optional(),
countryCodes: z.array(z.string()).optional(),
}),
)
.query(({ ctx, input }) => readTimelineEntriesDetail(ctx.db, input)),
};