This commit is contained in:
40
packages/shared/src/contracts/rpgCreationPreview.ts
Normal file
40
packages/shared/src/contracts/rpgCreationPreview.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import type { CustomWorldProfileRecord } from './runtime';
|
||||
|
||||
/**
|
||||
* 结果页预览契约。
|
||||
* 当前 preview 仍以兼容 profile 作为承载体,但已经把来源、阻断项和质量结论从 session 草稿里显式剥离出来。
|
||||
*/
|
||||
|
||||
export type RpgCreationPreviewSource =
|
||||
| 'session_preview'
|
||||
| 'published_profile';
|
||||
|
||||
export interface RpgCreationPreviewFinding {
|
||||
id: string;
|
||||
severity: 'info' | 'warning' | 'blocker';
|
||||
code: string;
|
||||
targetId?: string | null;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export interface RpgCreationPreviewBlocker {
|
||||
id: string;
|
||||
code: string;
|
||||
message: string;
|
||||
}
|
||||
|
||||
export type RpgCreationPreview = CustomWorldProfileRecord & {
|
||||
previewId?: string;
|
||||
sessionId?: string | null;
|
||||
profileId?: string | null;
|
||||
};
|
||||
|
||||
export interface RpgCreationPreviewEnvelope {
|
||||
preview: RpgCreationPreview;
|
||||
source: RpgCreationPreviewSource;
|
||||
generatedAt?: string;
|
||||
qualityFindings?: RpgCreationPreviewFinding[];
|
||||
blockers?: RpgCreationPreviewBlocker[];
|
||||
publishReady?: boolean;
|
||||
canEnterWorld?: boolean;
|
||||
}
|
||||
Reference in New Issue
Block a user