import { createAction as e, nanoid as t } from "@reduxjs/toolkit"
export const SERVICE_CMD_SUFFIX = "/service-cmd"
export const SERVICE_SUCCESS_SUFFIX = "/service-success"
export const SERVICE_FAIL_SUFFIX = "/service-fail"
export const createServiceCmdActions = (r) => [
e(`${r}/service-cmd`, (e) => ({ payload: e, meta: { originType: r, cmdId: t() } })),
e(`${r}/service-success`, ({ origin: e, payload: t }) => ({ payload: t, meta: { ...e.meta } })),
e(`${r}/service-fail`, ({ origin: e, error: t }) => ({
error: t,
payload: null,
meta: { ...e.meta },
})),
]
export const serviceCmdMatch = (e) => (t) =>
!!(
t?.meta?.cmdId &&
t?.meta?.originType &&
e?.meta?.cmdId &&
e?.meta?.originType &&
t.type !== e.type &&
t.meta.originType === e.meta.originType &&
t.meta.cmdId === e.meta.cmdId
)