42 lines
1.4 KiB
TypeScript
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)),
|
|
};
|