import {
  capability,
  unsafeOpaqueId,
  type ConnectionId,
  type CorrelationId,
  type CredentialReferenceId,
  type OperationId,
  type PrincipalId,
  type ProviderOperationContext,
} from "@awp/contracts";

export function providerContext(): ProviderOperationContext {
  return {
    operationId: unsafeOpaqueId<OperationId>("operation-test"),
    idempotencyKey: "idempotency-test",
    correlationId: unsafeOpaqueId<CorrelationId>("correlation-test"),
    authority: {
      principal: {
        id: unsafeOpaqueId<PrincipalId>("principal-test"),
        kind: "system",
        capabilities: [capability("test.execute")],
      },
      capabilities: [capability("test.execute")],
    },
    connectionId: unsafeOpaqueId<ConnectionId>("connection-test"),
    credentialReferenceId: unsafeOpaqueId<CredentialReferenceId>("credential-test"),
  };
}
