Files
optima/dalpuri/src/translations/service-ticket-note.ts
T
2026-04-07 23:56:31 +00:00

75 lines
2.1 KiB
TypeScript

import { TicketNote as CwTicketNote } from "../../generated/prisma/client";
import { ServiceTicketNote as ApiServiceTicketNote } from "../../../api/generated/prisma/client";
import { Translation, skipRow } from "./types";
import { TranslationContext } from "./context";
export const serviceTicketNoteTranslation: Translation<
CwTicketNote,
ApiServiceTicketNote,
TranslationContext
> = {
values: [
{ from: "ticketNoteRecId", to: "id" },
{
from: "srServiceRecId",
to: "serviceTicketId",
process: (value: number | null, context: TranslationContext) => {
if (!value) {
skipRow("ServiceTicketNote missing srServiceRecId");
}
if (!context.serviceTicketIds.has(value)) {
skipRow(
`ServiceTicketNote parent ticket missing: ${value}`
);
}
return value;
},
},
{
from: "notesMarkdown",
to: "notesMd",
process: (value: string | null) => value || "",
},
{
from: "notes",
to: "notes",
process: (value: string | null) => value || "",
},
{
from: "memberRecId",
to: "authorId",
process: (value: number | null, context: TranslationContext) => {
if (!value) {
skipRow("ServiceTicketNote missing memberRecId");
}
const userId = context.usersByMemberRecId.get(value);
if (!userId) {
skipRow(
`Cannot find user mapping for memberRecId: ${value}`
);
}
return userId;
},
},
{ from: "problemFlag", to: "problemFlag" },
{ from: "resolutionFlag", to: "resolutionFlag" },
{ from: "internalAnalysisFlag", to: "internalAnalysisFlag" },
{ from: "internalMemberFlag", to: "internalMemberFlag" },
{ from: "mergedFlag", to: "mergedFlag" },
{ from: "bundledFlag", to: "bundledFlag" },
{ from: "createdByParentFlag", to: "createdByParentFlag" },
{
from: "dateCreatedUtc",
to: "createdAt",
process: (value: Date | null) => value || null,
},
{
from: "lastUpdatedUtc",
to: "updatedAt",
process: (value: Date | null) => value || null,
},
],
};