-- ============================================================================
-- P3·3b-A 派发面 e2e·四态脚手架（gameId=9302）—— adapt 自 p3_scaffold_pong.sql / p2_scaffold_4state.sql
-- 缘由：3b-A 证「派发→stub worker→回调→buildGamePackage→新版本→入 feed」全 plumbing。
--       与 3a 直灌库桩(9301)不同：3b-A 的 engineBundle 由【回调链 handleCallback】产出（非 SQL 直写）。
--       本脚本只建一款【已发布 project（gameId=9302）+ 占位 version(93020)+ feed_rank】，供：
--         ① 提交 generic 任务携 gameId=9302（project 须先存在）；
--         ② 回调链建【新】version(N)+runtime_package(engineBundle=stub 回的 pong)；
--         ③ 跑 p3b_publish_flip.sql <N> 把 project.current_version_id/feed_rank 翻到新版本 N → feed 服务回调产物。
-- 四态：game_project.status=4(PUBLISHED) ∧ game_version.status=3 ∧ game_runtime_package.status=1 ∧ game_feed_rank 行
-- ID：gameId=9302 / 占位 versionId=93020 / pkgId=93020 / feedRankId=93020（高位区，与 9201/9301 零碰撞）
-- 占位 version 93020 的 package_json 为空（feed 卡先有占位包，翻到回调新版本 N 后服务真 pong）。
-- 幂等：先 DELETE 同 gameId/占位 ID 行再 INSERT（纯重建，可重复执行）。注意：不删回调新建的 version（N≠93020）。
-- tenant：staging tenant.enable=false → tenant_id=0
-- 用法：docker exec -i game-staging-mysql mysql --default-character-set=utf8mb4 -uroot -p"$MYSQL_ROOT_PASSWORD" < 本文件
-- ============================================================================
USE `ruoyi-vue-pro`;
SET NAMES utf8mb4;

START TRANSACTION;

-- 清旧（幂等重建；删该 gameId 全部 version/package/feed_rank，含上轮回调新建的——重跑前清场）
DELETE FROM game_feed_rank        WHERE game_id = 9302;
DELETE FROM game_runtime_package  WHERE game_id = 9302;
DELETE FROM game_version          WHERE game_id = 9302;
DELETE FROM game_project          WHERE id      = 9302;

-- ① project：已发布(status=4)，current_version_id 先指占位 93020（flip 后改指回调新版本 N）
INSERT INTO game_project
  (id, creator_user_id, title, summary, cover_url, tags, template_id, age_rating,
   status, current_version_id, launch_zone_id, featured, play_count, like_count,
   creator, create_time, updater, update_time, deleted, tenant_id)
VALUES
  (9302, 1, '弹球(generic 派发·回调入feed)', 'P3 3b-A 派发面 e2e：generic 任务派发 stub worker 回 pong bundle 经回调链入 feed',
   'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==',
   'P3,3b-A,dispatch,generic,pong', 'generic', 'all',
   4, 93020, NULL, b'0', 0, 0,
   'p3b-scaffold', NOW(), 'p3b-scaffold', NOW(), b'0', 0);

-- ② 占位 version：已发布(status=3)，仅供脚手架四态成立；回调会另建新 version(N)
INSERT INTO game_version
  (id, game_id, version_no, gen_task_id, package_url, bundle_size, checksum,
   status, creator, create_time, updater, update_time, deleted, tenant_id)
VALUES
  (93020, 9302, 1, NULL, '', 0, '',
   3, 'p3b-scaffold', NOW(), 'p3b-scaffold', NOW(), b'0', 0);

-- ③ 占位 runtime_package：status=1 + 空 package_json（占位包；flip 前 feed 卡指它，flip 后指回调新包）
INSERT INTO game_runtime_package
  (id, game_id, version_id, template_id, package_url, entry, runtime_version, preload_policy,
   bundle_size, checksum, sandbox_attr, allow_origins, status,
   creator, create_time, updater, update_time, deleted, tenant_id, package_json)
VALUES
  (93020, 9302, 93020, 'generic', '', 'index.html', '1.0.0', 'eager',
   0, '', 'allow-scripts', '', 1,
   'p3b-scaffold', NOW(), 'p3b-scaffold', NOW(), b'0', 0, NULL);

-- ④ feed_rank：zone_id=0(混合流) + status=1 入流（flip 后把 version_id 改指回调新版本 N）
INSERT INTO game_feed_rank
  (id, game_id, version_id, zone_id, quality_score, boost, sort_score, pinned, status,
   creator, create_time, updater, update_time, deleted, tenant_id)
VALUES
  (93020, 9302, 93020, 0, 0.0000, 0.0000, 0.0000, 0, 1,
   'p3b-scaffold', NOW(), 'p3b-scaffold', NOW(), b'0', 0);

COMMIT;

-- 回读四态
SELECT 'project' k, id, status, current_version_id FROM game_project WHERE id=9302
UNION ALL SELECT 'version', id, status, game_id FROM game_version WHERE id=93020
UNION ALL SELECT 'runtime_pkg', id, status, version_id FROM game_runtime_package WHERE id=93020
UNION ALL SELECT 'feed_rank', id, status, version_id FROM game_feed_rank WHERE id=93020;
