CREATE TABLE IF NOT EXISTS cms_operations ( id CHAR(36) CHARACTER SET ascii COLLATE ascii_bin PRIMARY KEY, actor_id INT NOT NULL, kind VARCHAR(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, request_key CHAR(36) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, request_hash CHAR(64) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, result_json MEDIUMTEXT NULL, created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE KEY operation_request (actor_id,kind,request_key) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS cms_outbox ( id CHAR(36) CHARACTER SET ascii COLLATE ascii_bin PRIMARY KEY, operation_id CHAR(36) CHARACTER SET ascii COLLATE ascii_bin NOT NULL, topic VARCHAR(64) NOT NULL, status VARCHAR(16) NOT NULL DEFAULT 'pending', attempts INT NOT NULL DEFAULT 0, available_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), lease_until DATETIME(3) NULL, lease_token CHAR(36) CHARACTER SET ascii COLLATE ascii_bin NULL, last_error VARCHAR(255) NULL, created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), UNIQUE KEY operation_effect (operation_id,topic), KEY delivery_pending (status,available_at), KEY delivery_lease (status,lease_until) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;