import { err, ok, type ReadonlyDB } from "@tailor-platform/erp-kit/core"; import type { DB } from "../generated/kysely-tailordb"; import { ReportedBlockNotFoundError } from "../lib/errors.generated"; export interface GetReportedBlockInput { reportedBlockId: string; } /** * Function: getReportedBlock * Retrieves a single ReportedTimeBlock by id, whether current or superseded, * so historical declarations remain individually retrievable. */ export async function run(db: ReadonlyDB, input: GetReportedBlockInput) { const reportedBlock = await db .selectFrom("ReportedTimeBlock") .selectAll() .where("id", "=", input.reportedBlockId) .executeTakeFirst(); if (!reportedBlock) { return err(new ReportedBlockNotFoundError(input.reportedBlockId)); } return ok({ reportedBlock }); }