refactor: 收口小玩法生成 action payload

This commit is contained in:
2026-06-04 05:41:44 +08:00
parent 991efb2eed
commit b037ce1e32
9 changed files with 344 additions and 96 deletions

View File

@@ -525,6 +525,7 @@ import {
resolveFinishedMiniGameDraftGenerationState,
} from './platformMiniGameDraftGenerationStateModel';
import {
buildJumpHopDraftActionPayload,
buildMatch3DFormPayloadFromSession,
buildMatch3DFormPayloadFromWork,
buildPendingMatch3DDraftMetadata,
@@ -534,6 +535,7 @@ import {
buildPuzzleFormPayloadFromSession,
buildPuzzleFormPayloadFromWork,
buildPuzzleWorkUpdatePayloadFromDraft,
buildWoodenFishDraftActionPayload,
isEmptyPuzzleFormOnlyDraft,
isPuzzleFormOnlyDraft,
} from './platformMiniGameDraftPayloadModel';
@@ -542,6 +544,7 @@ import {
buildPuzzleRuntimeWorkFromSession,
buildSquareHoleProfileFromSession,
buildVisualNovelSessionFromWorkDetail,
buildWoodenFishGeneratingWorkSummary,
buildWoodenFishPendingSession,
buildWoodenFishSessionFromWorkDetail,
} from './platformMiniGameSessionMappingModel';
@@ -6828,25 +6831,10 @@ export function PlatformEntryFlowShellImpl({
try {
const response = await jumpHopClient.executeAction(
created.session.sessionId,
{
actionType: 'compile-draft',
workTitle: payload?.workTitle ?? created.session.draft?.workTitle,
workDescription:
payload?.workDescription ??
created.session.draft?.workDescription,
themeTags: payload?.themeTags ?? created.session.draft?.themeTags,
difficulty:
payload?.difficulty ?? created.session.draft?.difficulty,
stylePreset:
payload?.stylePreset ?? created.session.draft?.stylePreset,
characterPrompt:
payload?.characterPrompt ??
created.session.draft?.characterPrompt,
tilePrompt:
payload?.tilePrompt ?? created.session.draft?.tilePrompt,
endMoodPrompt:
payload?.endMoodPrompt ?? created.session.draft?.endMoodPrompt,
},
buildJumpHopDraftActionPayload('compile-draft', {
payload,
draft: created.session.draft,
}),
);
const readyState = createReadyJumpHopGenerationState(generationState);
setJumpHopSession(response.session);
@@ -6958,17 +6946,9 @@ export function PlatformEntryFlowShellImpl({
try {
const response = await jumpHopClient.executeAction(
jumpHopSession.sessionId,
{
actionType,
workTitle: jumpHopSession.draft?.workTitle,
workDescription: jumpHopSession.draft?.workDescription,
themeTags: jumpHopSession.draft?.themeTags,
difficulty: jumpHopSession.draft?.difficulty,
stylePreset: jumpHopSession.draft?.stylePreset,
characterPrompt: jumpHopSession.draft?.characterPrompt,
tilePrompt: jumpHopSession.draft?.tilePrompt,
endMoodPrompt: jumpHopSession.draft?.endMoodPrompt,
},
buildJumpHopDraftActionPayload(actionType, {
draft: jumpHopSession.draft,
}),
);
setJumpHopSession(response.session);
setJumpHopWork(response.work ?? jumpHopWork);
@@ -7190,30 +7170,8 @@ export function PlatformEntryFlowShellImpl({
setSelectionStage('wooden-fish-generating');
markDraftGenerating('wooden-fish', [created.session.sessionId]);
markPendingDraftGenerating('wooden-fish', created.session.sessionId);
const createdAt = created.session.updatedAt ?? created.session.createdAt;
setWoodenFishWorks((current) => [
{
runtimeKind: 'wooden-fish',
workId: created.session.sessionId,
profileId: created.session.sessionId,
ownerUserId: created.session.ownerUserId,
sourceSessionId: created.session.sessionId,
workTitle:
payload?.workTitle ?? created.session.draft?.workTitle ?? '敲木鱼',
workDescription:
payload?.workDescription ??
created.session.draft?.workDescription ??
'',
themeTags: payload?.themeTags ??
created.session.draft?.themeTags ?? ['敲木鱼'],
coverImageSrc: created.session.draft?.coverImageSrc ?? null,
publicationStatus: 'draft',
playCount: 0,
updatedAt: createdAt,
publishedAt: null,
publishReady: false,
generationStatus: 'generating',
},
buildWoodenFishGeneratingWorkSummary(created.session, payload),
...current.filter(
(item) => item.sourceSessionId !== created.session.sessionId,
),
@@ -7222,24 +7180,10 @@ export function PlatformEntryFlowShellImpl({
try {
const response = await woodenFishClient.executeAction(
created.session.sessionId,
{
actionType: 'compile-draft',
workTitle: payload?.workTitle ?? created.session.draft?.workTitle,
workDescription:
payload?.workDescription ??
created.session.draft?.workDescription,
themeTags: payload?.themeTags ?? created.session.draft?.themeTags,
hitObjectPrompt:
payload?.hitObjectPrompt ??
created.session.draft?.hitObjectPrompt,
hitObjectReferenceImageSrc:
payload?.hitObjectReferenceImageSrc ??
created.session.draft?.hitObjectReferenceImageSrc,
hitSoundAsset:
payload?.hitSoundAsset ?? created.session.draft?.hitSoundAsset,
floatingWords:
payload?.floatingWords ?? created.session.draft?.floatingWords,
},
buildWoodenFishDraftActionPayload('compile-draft', {
payload,
draft: created.session.draft,
}),
);
setWoodenFishSession(response.session);
setWoodenFishWork(response.work ?? null);
@@ -7375,17 +7319,9 @@ export function PlatformEntryFlowShellImpl({
try {
const response = await woodenFishClient.executeAction(
woodenFishSession.sessionId,
{
actionType,
workTitle: woodenFishSession.draft?.workTitle,
workDescription: woodenFishSession.draft?.workDescription,
themeTags: woodenFishSession.draft?.themeTags,
hitObjectPrompt: woodenFishSession.draft?.hitObjectPrompt,
hitObjectReferenceImageSrc:
woodenFishSession.draft?.hitObjectReferenceImageSrc,
hitSoundAsset: woodenFishSession.draft?.hitSoundAsset,
floatingWords: woodenFishSession.draft?.floatingWords,
},
buildWoodenFishDraftActionPayload(actionType, {
draft: woodenFishSession.draft,
}),
);
setWoodenFishSession(response.session);
setWoodenFishWork(response.work ?? woodenFishWork);