import { DyFM_DataModel_Params, DyFM_Metadata, DyFM_Object } from '@futdevpro/fsm-dynamo'; /** * `DyNTS_LVS_VectorPersist` (BFR-AM-001) — egy MongoDB-ben perzistált vektor-rekord, ami a * `LVS_VectorPool_ControlService` **in-memory** pool-jának tartós háttértára. A FAM (fdp-agent-memory) * workaround-ját generalizálja: a vektorok a SAJÁT Mongo-ban élnek, boot-kor a memória-pool-ba * hidratálódnak — **NEM** MongoDB Atlas Vector Search. * * Egy dokumentum = **egy vektor egy adott pool-ban**. A `collectionKey` particionálja a pool-okat * (egy fogyasztó több, logikailag elkülönített pool-t tarthat — pl. táranként). A `vectorId` a pool-on * belüli kulcs (a `pool.addVector(vectorId, embedding)` ezzel illeszt). * * `extends DyFM_Metadata`: az identitás/metadata (`_id`, `__created`, `__lastModified`, `_deleted`) az * ősből jön. A `metadata` `unknown` (Mongoose `Mixed`) — a fogyasztó tetszőleges kísérő-adatot tárolhat * (a séma NEM validál); az `embedding` `number[]` a perzistált nyers vektor. */ export class DyNTS_LVS_VectorPersist extends DyFM_Metadata { /** A pool-on belüli vektor-kulcs (a `pool.addVector(vectorId, ...)` ezzel illeszt). */ vectorId?: string; /** Melyik (logikai) pool-hoz tartozik — a pool-particionálás kulcsa (hidratálás-szűrő). */ collectionKey?: string; /** A perzistált NYERS vektor (a pool maga számolja a normalizált másolatot). */ embedding?: number[]; /** A vektor dimenziója (homogenitás-ellenőrzéshez + diagnosztikához tárolt). */ dimensions?: number; /** Opcionális fogyasztó-specifikus kísérő-adat (Mongoose `Mixed`; a séma NEM validál). */ metadata?: unknown; constructor(set?: Partial) { super(set); if (set) { DyFM_Object.cleanAssign(this, set); } } } /** * MongoDB data-params a `dynts_lvs_vector` collection-höz (BFR-AM-001). Az `embedding` `number[]` a * perzistált nyers vektor; a `metadata` `type:'object'` (Mongoose `Mixed`) — a séma NEM validál. A * `vectorId` + `collectionKey` index-elt (a hidratálás `collectionKey`-re, az upsert/remove a * `vectorId`+`collectionKey` párra szűr). */ export const DyNTS_lvsVectorPersist_dataParams: DyFM_DataModel_Params = new DyFM_DataModel_Params({ dataName: 'dynts_lvs_vector', properties: { vectorId: { type: 'string', index: true, required: true }, collectionKey: { type: 'string', index: true, required: true }, embedding: { type: 'number[]' }, dimensions: { type: 'number' }, metadata: { type: 'object' }, }, });