From ea5ab804c8caa53554512c89249aa1649a5fa179 Mon Sep 17 00:00:00 2001 From: ARCHITECT Date: Thu, 1 Jan 2026 12:16:39 +0000 Subject: [PATCH] Update log.messages: owner_id, players_id, master_player, flag_id, items, loc_id --- docs/LOG.md | 29 ++++++++++++++++++++--------- schemas/04_log.sql | 18 +++++++++++++----- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/docs/LOG.md b/docs/LOG.md index ab5ea41..f18a012 100644 --- a/docs/LOG.md +++ b/docs/LOG.md @@ -12,14 +12,18 @@ Registra todos los mensajes entre usuarios y agentes IA. | hash | CHAR(64) | SHA256 único del mensaje | | session_hash | CHAR(64) | SHA256 de la sesión | | thread_hash | CHAR(64) | SHA256 del hilo (nullable) | -| sender_id | CHAR(64) | Hash del emisor (ref players) | -| receiver_id | CHAR(64) | Hash del receptor (ref players) | -| leader_id | CHAR(64) | Coordinador multiagente (nullable) | +| owner_id | CHAR(64) | Emisor del mensaje (→ ply) | +| players_id | CHAR(64)[] | Receptores (→ ply) | +| master_player | CHAR(64) | Líder/coordinador (→ ply, nullable) | | role | TEXT | Rol del emisor | | content | TEXT | Contenido del mensaje | | attachments | JSONB | Adjuntos | | prev_hash | CHAR(64) | Hash mensaje anterior (cadena integridad) | -| hashtags | CHAR(64)[] | Etiquetas asociadas | +| hashtags | CHAR(64)[] | Etiquetas (→ hst) | +| flag_id | CHAR(64) | Jurisdicción (→ flg, nullable) | +| master_item_id | CHAR(64) | Item principal (→ itm, nullable) | +| item_id | CHAR(64)[] | Items relacionados (→ itm) | +| loc_id | CHAR(64) | Ubicación (→ loc, nullable) | | ambient | JSONB | Contexto ambiental (nullable) | | created_at | TIMESTAMPTZ | Timestamp | @@ -65,11 +69,15 @@ Primer mensaje de sesión: `prev_hash = NULL` ### log.messages - `session_hash` - Mensajes de una sesión - `thread_hash` - Mensajes de un hilo -- `sender_id` - Mensajes enviados -- `receiver_id` - Mensajes recibidos +- `owner_id` - Mensajes enviados por +- `master_player` - Mensajes con líder - `prev_hash` - Cadena de integridad - `created_at` - Orden cronológico - `hashtags` (GIN) - Búsqueda por etiquetas +- `players_id` (GIN) - Búsqueda por receptores +- `item_id` (GIN) - Búsqueda por items +- `flag_id` - Filtrar por jurisdicción +- `loc_id` - Filtrar por ubicación ### log.message_refs - `message_hash` - Referencias de un mensaje @@ -77,10 +85,13 @@ Primer mensaje de sesión: `prev_hash = NULL` - `ref_type` - Filtrar por tipo - `thread_hash` - Referencias de un hilo -## Relaciones externas +## Relaciones externas (Sistema de Componentes TZZR) -- `sender_id`, `receiver_id`, `leader_id` → `core.players` -- `hashtags` → `core.hashtags` +- `owner_id`, `players_id`, `master_player` → `ply` (Players) +- `hashtags` → `hst` (Hash Semantic Tagging) +- `flag_id` → `flg` (Flags/Jurisdicciones) +- `master_item_id`, `item_id` → `itm` (Items) +- `loc_id` → `loc` (Locations) - `ref_hash` (context) → `log.messages` - `ref_hash` (accountant) → libros contables - `ref_hash` (secretary) → registros secretaría diff --git a/schemas/04_log.sql b/schemas/04_log.sql index c39ea92..0add790 100644 --- a/schemas/04_log.sql +++ b/schemas/04_log.sql @@ -20,25 +20,33 @@ CREATE TABLE log.messages ( hash CHAR(64) UNIQUE NOT NULL, session_hash CHAR(64) NOT NULL, thread_hash CHAR(64), - sender_id CHAR(64) NOT NULL, - receiver_id CHAR(64) NOT NULL, - leader_id CHAR(64), + owner_id CHAR(64) NOT NULL, + players_id CHAR(64)[] DEFAULT '{}', + master_player CHAR(64), role TEXT, content TEXT NOT NULL, attachments JSONB DEFAULT '{}', prev_hash CHAR(64), hashtags CHAR(64)[] DEFAULT '{}', + flag_id CHAR(64), + master_item_id CHAR(64), + item_id CHAR(64)[] DEFAULT '{}', + loc_id CHAR(64), ambient JSONB, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE INDEX idx_messages_session ON log.messages(session_hash); CREATE INDEX idx_messages_thread ON log.messages(thread_hash); -CREATE INDEX idx_messages_sender ON log.messages(sender_id); -CREATE INDEX idx_messages_receiver ON log.messages(receiver_id); +CREATE INDEX idx_messages_owner ON log.messages(owner_id); +CREATE INDEX idx_messages_master_player ON log.messages(master_player); CREATE INDEX idx_messages_prev ON log.messages(prev_hash); CREATE INDEX idx_messages_created ON log.messages(created_at); CREATE INDEX idx_messages_hashtags ON log.messages USING gin(hashtags); +CREATE INDEX idx_messages_players ON log.messages USING gin(players_id); +CREATE INDEX idx_messages_items ON log.messages USING gin(item_id); +CREATE INDEX idx_messages_flag ON log.messages(flag_id); +CREATE INDEX idx_messages_loc ON log.messages(loc_id); -- ============================================ -- Tabla 2: message_refs