Kaizen
Browse modulesRulesrules/serverClasses

Class: RuleRepositories

Defined in: server/rules/rule-repositories.ts:49

Holds the rules repositories and exposes a transaction() entry point.

Uses the ambient Prisma client registered via registerPrismaClient / initPrismaClient on @the-kaizen-labs/taproot/persistence. Repositories route their Prisma handle through TransactionManager, so inside transaction(fn) every this.tx.* call on any repo resolves to the active transaction automatically.

Two flavors of parent repo coexist:

  • rules / conditions — read-only, version-flattened, engine-shaped. Used by the engine and any consumer that wants the Rule/Condition Zod-validated view.
  • rulesCrud / conditionsCrud (+ ruleVersions, conditionVersions) — CRUD over the raw Prisma rows. Used by services to author and version rules. Returns camelCase Rules/RuleVersions row types directly.

Mirrors FormRepositories from forms/server.

Constructors

Constructor

new RuleRepositories(options?: RuleRepositoriesOptions): RuleRepositories;

Defined in: server/rules/rule-repositories.ts:66

Parameters

ParameterType
optionsRuleRepositoriesOptions

Returns

RuleRepositories

Properties

conditions

readonly conditions: ConditionRepository;

Defined in: server/rules/rule-repositories.ts:53


conditionsCrud

readonly conditionsCrud: ConditionCrudRepository;

Defined in: server/rules/rule-repositories.ts:56


conditionVersions

readonly conditionVersions: ConditionVersionRepository;

Defined in: server/rules/rule-repositories.ts:57


rules

readonly rules: RuleRepository;

Defined in: server/rules/rule-repositories.ts:52


rulesCrud

readonly rulesCrud: RuleCrudRepository;

Defined in: server/rules/rule-repositories.ts:54


ruleVersions

readonly ruleVersions: RuleVersionRepository;

Defined in: server/rules/rule-repositories.ts:55

Methods

appendConditionVersion()

appendConditionVersion(
   conditionId: string, 
   input: Omit<ConditionVersionCreateInput, "conditionId" | "versionNumber">, 
   parentPatch?: Partial<{
  currentVersionId: string | null;
  description: string | null;
  module: string | null;
  name: string | null;
}>
): Promise<ConditionRecordWithVersion>;

Defined in: server/rules/rule-repositories.ts:131

Parameters

ParameterType
conditionIdstring
inputOmit<ConditionVersionCreateInput, "conditionId" | "versionNumber">
parentPatchPartial<{ currentVersionId: string | null; description: string | null; module: string | null; name: string | null; }>

Returns

Promise<ConditionRecordWithVersion>


appendRuleVersion()

appendRuleVersion(
   ruleId: string, 
   input: Omit<RuleVersionCreateInput, "ruleId" | "versionNumber">, 
   parentPatch?: Partial<{
  currentVersionId: string | null;
  description: string | null;
  module: string | null;
  name: string;
  status: "active" | "inactive" | "archived";
  statusUpdatedAt: Date;
  statusUpdatedBy: string | null;
}>
): Promise<RuleRecordWithVersion>;

Defined in: server/rules/rule-repositories.ts:89

Parameters

ParameterType
ruleIdstring
inputOmit<RuleVersionCreateInput, "ruleId" | "versionNumber">
parentPatchPartial<{ currentVersionId: string | null; description: string | null; module: string | null; name: string; status: "active" | "inactive" | "archived"; statusUpdatedAt: Date; statusUpdatedBy: string | null; }>

Returns

Promise<RuleRecordWithVersion>


appendRuleVersionCopy()

appendRuleVersionCopy(ruleId: string, overrides: RuleVersionCopyOverrides): Promise<RuleRecordWithVersion | null>;

Defined in: server/rules/rule-repositories.ts:109

Append a copy of the current version with explicit field overrides.

Parameters

ParameterType
ruleIdstring
overridesRuleVersionCopyOverrides

Returns

Promise<RuleRecordWithVersion | null>


transaction()

transaction<T>(fn: (repos: RuleRepositories) => Promise<T>): Promise<T>;

Defined in: server/rules/rule-repositories.ts:81

Type Parameters

Type Parameter
T

Parameters

ParameterType
fn(repos: RuleRepositories) => Promise<T>

Returns

Promise<T>

On this page