import { AttendanceSessionDocument } from "./attendance-session.model.mjs"; import { AttendanceRecordDocument } from "./attendance-record.model.mjs"; import { AttendanceCorrectionDocument } from "./attendance-correction.model.mjs"; import { ModelBlueprint } from "@classytic/mongokit"; import { ResolvedTenantConfig } from "@classytic/repo-core/tenant"; import { Model } from "mongoose"; //#region src/models/create-models.d.ts interface MusterModels { AttendanceSession: Model; AttendanceRecord: Model; AttendanceCorrection: Model; } interface DefineMusterModelsConfig { /** * PRE-RESOLVED tenant config (via `resolveTenantConfig` from * `@classytic/repo-core/tenant`, P11). Drives both the injected tenant * field and index prefixing. `defineMuster` resolves once and passes the * same value here and to `multiTenantPlugin`, so they cannot drift (§9.2). */ tenant: ResolvedTenantConfig; /** Mongoose auto-index builds. Default `true` (dev); `false` in prod (§35). */ autoIndex?: boolean; /** * Prefix prepended to every physical collection this package creates. * Unset → default names (`attendance_sessions`, …). */ collectionPrefix?: string; /** * On a name collision: `false` (default) throws mongokit's * `ModelCollisionError`; `true` re-registers (hot-reload / test fixtures). * mongokit refuses `replace` under `NODE_ENV=production`. */ forceRecreate?: boolean; } /** * Describe the muster model set as a connection-free blueprint. Pure — * builds no schema and registers nothing until `.bind(connection)`. */ declare function defineMusterModels(config: DefineMusterModelsConfig): ModelBlueprint; //#endregion export { DefineMusterModelsConfig, MusterModels, defineMusterModels };