-- Human-governed tenant glossary used only for retrieval query expansion. -- Definitions remain review metadata and are never injected into model prompts as facts. CREATE TABLE IF NOT EXISTS `aihr_knowledge_glossary_term` ( `id` bigint NOT NULL AUTO_INCREMENT, `tenant_id` varchar(20) NOT NULL, `term` varchar(120) NOT NULL, `canonical_term` varchar(120) NOT NULL, `aliases_json` json DEFAULT NULL, `definition` varchar(2000) DEFAULT NULL, `applicable_region` varchar(100) DEFAULT NULL, `applicable_project` varchar(100) DEFAULT NULL, `applicable_role` varchar(100) DEFAULT NULL, `version_no` int NOT NULL, `status` varchar(20) NOT NULL DEFAULT 'DRAFT', `reviewer_id` bigint DEFAULT NULL, `review_reason` varchar(500) DEFAULT NULL, `reviewed_time` datetime DEFAULT NULL, `create_by` bigint DEFAULT NULL, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_aihr_glossary_version` (`tenant_id`, `term`, `version_no`), KEY `idx_aihr_glossary_active` (`tenant_id`, `status`, `term`), CONSTRAINT `ck_aihr_glossary_status` CHECK (`status` IN ('DRAFT','ACTIVE','REJECTED','DEPRECATED')) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Immutable revisions of human-governed retrieval glossary terms';