import { canonicalize } from "../../../contracts/query-keys.js"; export const REFERENCE_FEATURE_ID = "reference-feature"; const REFERENCE_NAMESPACE = Object.freeze(["reference-resource", 1]); export const referenceQueryKeys = Object.freeze({ all: () => REFERENCE_NAMESPACE, list: (filters = {}) => Object.freeze([...REFERENCE_NAMESPACE, "list", canonicalize(filters)]), /** @param {string} resourceId */ detail: (resourceId) => Object.freeze([...REFERENCE_NAMESPACE, "detail", String(resourceId)]), }); export const REFERENCE_FEATURE_CONTRACT = Object.freeze({ featureId: REFERENCE_FEATURE_ID, routes: Object.freeze({ REFERENCE_RESOURCE_LIST: Object.freeze({ routeId: "REFERENCE_RESOURCE_LIST", path: "/examples/reference-resources", paramsSchema: null, searchSchema: "ReferenceResourceListQuery", access: "integration-defined", loadingSurface: "reference-resource-list", errorSurface: "feature-boundary", chunkId: "route-reference-resources", title: "Reference feature", navigationLabel: "Reference feature", navigationOrder: 50, }), REFERENCE_RESOURCE_DETAIL: Object.freeze({ routeId: "REFERENCE_RESOURCE_DETAIL", path: "/examples/reference-resources/:resourceId", paramsSchema: "ReferenceResourceParams", searchSchema: null, access: "integration-defined", loadingSurface: "reference-resource-detail", errorSurface: "feature-boundary", chunkId: "route-reference-resource-detail", title: "Reference detail", navigationLabel: null, navigationOrder: null, }), REFERENCE_RESOURCE_FORM: Object.freeze({ routeId: "REFERENCE_RESOURCE_FORM", path: "/examples/reference-resources/new", paramsSchema: null, searchSchema: null, access: "integration-defined", loadingSurface: "reference-resource-form", errorSurface: "feature-boundary", chunkId: "route-reference-resource-form", title: "Reference form", navigationLabel: null, navigationOrder: null, }), REFERENCE_RESOURCE_STATUS: Object.freeze({ routeId: "REFERENCE_RESOURCE_STATUS", path: "/examples/reference-resources/status", paramsSchema: null, searchSchema: null, access: "integration-defined", loadingSurface: "reference-resource-status", errorSurface: "feature-boundary", chunkId: "route-reference-resource-status", title: "Reference status", navigationLabel: null, navigationOrder: null, }), }), routeRuntimeContracts: Object.freeze({ REFERENCE_RESOURCE_LIST: Object.freeze({ routeId: "REFERENCE_RESOURCE_LIST", moduleId: "reference-resource-page", paramsCodec: "none", searchCodec: "ReferenceResourceListQuery", }), REFERENCE_RESOURCE_DETAIL: Object.freeze({ routeId: "REFERENCE_RESOURCE_DETAIL", moduleId: "reference-resource-detail-page", paramsCodec: "ReferenceResourceParams", searchCodec: "none", }), REFERENCE_RESOURCE_FORM: Object.freeze({ routeId: "REFERENCE_RESOURCE_FORM", moduleId: "reference-resource-form-page", paramsCodec: "none", searchCodec: "none", }), REFERENCE_RESOURCE_STATUS: Object.freeze({ routeId: "REFERENCE_RESOURCE_STATUS", moduleId: "reference-resource-status-page", paramsCodec: "none", searchCodec: "none", }), }), apiOperations: Object.freeze({ LIST_REFERENCE_RESOURCES: Object.freeze({ method: "GET", path: "/api/reference-resources", operationId: "LIST_REFERENCE_RESOURCES", auth: "external-session", timeoutMs: null, idempotency: "safe", retry: "runtime", requestSource: "search", requestSchema: "ReferenceResourceListQuery", responseSchema: "ReferenceResourceListPayload", owner: "feature-frontend-reference-feature-vertical-slice", }), CREATE_REFERENCE_RESOURCE: Object.freeze({ method: "POST", path: "/api/reference-resources", operationId: "CREATE_REFERENCE_RESOURCE", auth: "external-session", timeoutMs: null, idempotency: "keyed", retry: "runtime", requestSource: "body", requestSchema: "CreateReferenceResourceCommand", responseSchema: "ReferenceResourcePayload", owner: "feature-frontend-reference-feature-vertical-slice", }), GET_REFERENCE_RESOURCE: Object.freeze({ method: "GET", path: "/api/reference-resources/{resourceId}", operationId: "GET_REFERENCE_RESOURCE", auth: "external-session", timeoutMs: null, idempotency: "safe", retry: "runtime", requestSource: "none", requestSchema: "NoRequest", responseSchema: "ReferenceResourcePayload", owner: "feature-frontend-form-page-platform", }), }), queryRegistry: Object.freeze({ REFERENCE_RESOURCE: Object.freeze({ namespace: REFERENCE_NAMESPACE, serialization: "canonical-object-order", identity: "no-pii-token-or-raw-url", invalidation: "reference resource namespace after successful mutation", version: 1, persistence: "disabled", }), }), });