104 lines
2.6 KiB
TypeScript
104 lines
2.6 KiB
TypeScript
export type PuzzleTemplatePricingUnit = 'point';
|
|
|
|
export type PuzzleSupportedLevelMode =
|
|
| 'single'
|
|
| 'multi'
|
|
| 'single_or_multi';
|
|
|
|
export type PuzzleLevelGenerationMode = 'single_level' | 'multi_level';
|
|
|
|
export interface PuzzleTemplateCostRange {
|
|
minPoints: number;
|
|
maxPoints: number;
|
|
pricingUnit: PuzzleTemplatePricingUnit;
|
|
reason: string;
|
|
}
|
|
|
|
export type PuzzleDraftEditableFieldPath =
|
|
| 'workTitle'
|
|
| 'workDescription'
|
|
| 'workTags'
|
|
| 'levels[].levelName'
|
|
| 'levels[].pictureDescription'
|
|
| 'levels[].pictureReference';
|
|
|
|
export interface PuzzleTemplateImageGenerationPolicy {
|
|
allowUploadedImageDirectly: boolean;
|
|
allowGeneratedImages: boolean;
|
|
allowPerLevelReferenceImage: boolean;
|
|
defaultCandidateCountPerLevel: number;
|
|
}
|
|
|
|
export interface PuzzleCreativeTemplateProtocol {
|
|
templateId: string;
|
|
title: string;
|
|
summary: string;
|
|
previewImageSrc: string | null;
|
|
supportedLevelMode: PuzzleSupportedLevelMode;
|
|
minLevelCount: number;
|
|
maxLevelCount: number;
|
|
defaultLevelCount: number;
|
|
costRange: PuzzleTemplateCostRange;
|
|
requiredDraftFields: PuzzleDraftEditableFieldPath[];
|
|
imagePolicy: PuzzleTemplateImageGenerationPolicy;
|
|
}
|
|
|
|
export interface PuzzleCreativeTemplateSelection {
|
|
templateId: string;
|
|
title: string;
|
|
reason: string;
|
|
costRange: PuzzleTemplateCostRange;
|
|
supportedLevelMode: PuzzleSupportedLevelMode;
|
|
selectedLevelMode: PuzzleLevelGenerationMode;
|
|
plannedLevelCount: number;
|
|
requiresUserConfirmation: true;
|
|
}
|
|
|
|
export interface CreativePuzzleLevelDraftInput {
|
|
levelName: string;
|
|
pictureDescription: string;
|
|
/**
|
|
* 任务 A 冻结:Phase 1 采用正式字段方案,后续拼图草稿落地需补正式 pictureReference 字段。
|
|
*/
|
|
pictureReference?: string | null;
|
|
}
|
|
|
|
export interface CreativePuzzleDraftToolInput {
|
|
templateId: string;
|
|
templateCostRange: PuzzleTemplateCostRange;
|
|
workTitle: string;
|
|
workDescription: string;
|
|
workTags: string[];
|
|
levels: CreativePuzzleLevelDraftInput[];
|
|
}
|
|
|
|
export interface PuzzleImageGenerationPlanLevel {
|
|
levelId: string;
|
|
levelName: string;
|
|
pictureDescription: string;
|
|
imagePrompt: string;
|
|
pictureReference?: string | null;
|
|
candidateCount: number;
|
|
}
|
|
|
|
export interface PuzzleImageGenerationPlan {
|
|
mode: PuzzleLevelGenerationMode;
|
|
templateId: string;
|
|
estimatedCostRange: PuzzleTemplateCostRange;
|
|
levels: PuzzleImageGenerationPlanLevel[];
|
|
}
|
|
|
|
export type PuzzleDraftFieldPatchOperation =
|
|
| 'set'
|
|
| 'append'
|
|
| 'replace'
|
|
| 'remove';
|
|
|
|
export interface PuzzleDraftFieldPatch {
|
|
fieldPath: PuzzleDraftEditableFieldPath;
|
|
operation: PuzzleDraftFieldPatchOperation;
|
|
levelId?: string | null;
|
|
value: unknown;
|
|
rationale: string;
|
|
}
|