prod-wag-backend-automate-s.../WebServices/management-frontend/src/eventRouters/appendersEvents/schemaList/appenders.ts

176 lines
4.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { z } from "zod";
import { flattenFieldDefinitions } from "@/eventRouters/schemas/zodSchemas";
interface AppendersData {
uu_id: string;
service_uu_id: string;
event_uu_id: string;
is_confirmed: boolean;
active: boolean;
deleted?: boolean;
created_at?: string;
updated_at?: string;
}
const errorMessages = {
en: {
serviceUuIdRequired: "Service UUID is required",
eventUuIdRequired: "Event UUID is required",
},
tr: {
serviceUuIdRequired: "Servis UUID'si gereklidir",
eventUuIdRequired: "Etkinlik UUID'si gereklidir",
},
};
const getServiceBaseSchema = (lang: "en" | "tr" = "en") =>
z.object({
uu_id: z.string().optional(),
service_uu_id: z.string().min(1, errorMessages[lang].serviceUuIdRequired),
event_uu_id: z.string().min(1, errorMessages[lang].eventUuIdRequired),
is_confirmed: z.boolean().default(false),
active: z.boolean().default(true),
deleted: z.boolean().default(false),
created_at: z.string().optional(),
updated_at: z.string().optional(),
});
const AppenderBaseSchema = getServiceBaseSchema("en");
const AppenderBaseTranslationTr = {
uu_id: "UUID",
service_uu_id: "Servis UUID'si",
event_uu_id: "Etkinlik UUID'si",
is_confirmed: "Onaylandı",
active: "Active",
deleted: "Deleted",
created_at: "Created At",
updated_at: "Updated At",
};
const AppenderBaseTranslationEn = {
uu_id: "UUID",
service_uu_id: "Service UUID",
event_uu_id: "Event UUID",
is_confirmed: "Confirmed",
active: "Active",
deleted: "Deleted",
created_at: "Created At",
updated_at: "Updated At",
};
const serviceBaseFieldDefinitions = {
identificationInfo: {
title: "Service Information",
order: 1,
fields: {
uu_id: {
type: "text",
label: {
tr: AppenderBaseTranslationTr.uu_id,
en: AppenderBaseTranslationEn.uu_id,
},
readOnly: true,
required: false,
},
service_uu_id: {
type: "text",
label: {
tr: AppenderBaseTranslationTr.service_uu_id,
en: AppenderBaseTranslationEn.service_uu_id,
},
readOnly: false,
required: true,
},
event_uu_id: {
type: "text",
label: {
tr: AppenderBaseTranslationTr.event_uu_id,
en: AppenderBaseTranslationEn.event_uu_id,
},
readOnly: false,
required: true,
},
},
},
statusInfo: {
title: "Status Information",
order: 3,
fields: {
active: {
type: "checkbox",
label: {
tr: AppenderBaseTranslationTr.active,
en: AppenderBaseTranslationEn.active,
},
readOnly: false,
required: false,
defaultValue: true,
},
deleted: {
type: "checkbox",
label: {
tr: AppenderBaseTranslationTr.deleted,
en: AppenderBaseTranslationEn.deleted,
},
readOnly: true,
required: false,
defaultValue: false,
},
is_confirmed: {
type: "checkbox",
label: {
tr: AppenderBaseTranslationTr.is_confirmed,
en: AppenderBaseTranslationEn.is_confirmed,
},
readOnly: false,
required: true,
},
},
},
systemInfo: {
title: "System Information",
order: 4,
fields: {
created_at: {
type: "date",
label: {
tr: AppenderBaseTranslationTr.created_at,
en: AppenderBaseTranslationEn.created_at,
},
readOnly: true,
required: false,
},
updated_at: {
type: "date",
label: {
tr: AppenderBaseTranslationTr.updated_at,
en: AppenderBaseTranslationEn.updated_at,
},
readOnly: true,
required: false,
},
},
},
};
const ViewAppenderSchema = AppenderBaseSchema;
const AppenderSchema = AppenderBaseSchema;
const appenderFlatFieldDefinitions = flattenFieldDefinitions(
serviceBaseFieldDefinitions
);
type AppenderFieldDefinitionsType = typeof appenderFlatFieldDefinitions;
const appenderFieldsByMode = {
view: Object.keys(serviceBaseFieldDefinitions),
};
export type { AppendersData, AppenderFieldDefinitionsType };
export {
AppenderSchema,
appenderFlatFieldDefinitions,
AppenderBaseTranslationEn,
AppenderBaseTranslationTr,
appenderFieldsByMode,
};