import { requestJson } from './apiClient'; export type CreationEntryTypeConfig = { id: string; title: string; subtitle: string; badge: string; imageSrc: string; visible: boolean; open: boolean; sortOrder: number; categoryId: string; categoryLabel: string; categorySortOrder: number; updatedAtMicros: number; unifiedCreationSpec?: UnifiedCreationSpec | null; }; export type UnifiedCreationField = { id: string; kind: 'text' | 'select' | 'image' | 'audio'; label: string; required: boolean; }; export type UnifiedCreationSpec = { playId: 'puzzle' | 'match3d' | 'jump-hop' | 'wooden-fish'; title: string; workspaceStage: | 'puzzle-agent-workspace' | 'match3d-agent-workspace' | 'jump-hop-workspace' | 'wooden-fish-workspace'; generationStage: | 'puzzle-generating' | 'match3d-generating' | 'jump-hop-generating' | 'wooden-fish-generating'; resultStage: | 'puzzle-result' | 'match3d-result' | 'jump-hop-result' | 'wooden-fish-result'; fields: UnifiedCreationField[]; }; export type CreationEntryConfig = { startCard: { title: string; description: string; idleBadge: string; busyBadge: string; }; typeModal: { title: string; description: string; }; eventBanner: { title: string; description: string; coverImageSrc: string; prizePoolMudPoints: number; startsAtText: string; endsAtText: string; }; creationTypes: CreationEntryTypeConfig[]; }; export async function fetchCreationEntryConfig(): Promise { return requestJson( '/api/creation-entry/config', { method: 'GET' }, '读取创作入口配置失败', ); }