75 lines
2.1 KiB
TypeScript
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,
|
|
},
|
|
],
|
|
};
|