import { inject } from '@angular/core'; import { Result } from '@shared/kernel/fp'; import { Valid } from '@behandeling/domain/besluit.machine'; import { runSubmit, SUBMIT_FAILED } from '@shared/application/submit'; import { BesluitAdapter } from '@behandeling/infrastructure/besluit.adapter'; /** * Command factory: binds the besluit adapter in an injection context and returns the * submit function the decision form calls. Same field-initializer shape as * `createStore` — the UI holds an application command, never the network client. */ export function createSubmitBesluit() { const adapter = inject(BesluitAdapter); return (id: string, data: Valid): Promise> => runSubmit(() => adapter.besluit(id, data), SUBMIT_FAILED); }