新增统一案例存储仓储
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { PublishPlatform, QaReport } from "../domain/types";
|
||||
import type { OptimizationCaseType } from "../cases/types";
|
||||
|
||||
export type CalibrationDirection =
|
||||
| "better_than_expected"
|
||||
@@ -27,8 +28,10 @@ export interface RubricVersion {
|
||||
|
||||
export interface ScoringRun {
|
||||
id: string;
|
||||
job_id: string;
|
||||
revision: number;
|
||||
result_version_id?: string | null;
|
||||
case_type?: OptimizationCaseType;
|
||||
job_id: string | null;
|
||||
revision: number | null;
|
||||
rubric_version_id: string;
|
||||
dimension_scores: Record<string, number>;
|
||||
composite_score: number;
|
||||
@@ -38,9 +41,11 @@ export interface ScoringRun {
|
||||
|
||||
export interface PublicationRecord {
|
||||
id: string;
|
||||
job_id: string;
|
||||
revision: number;
|
||||
platform: PublishPlatform;
|
||||
result_version_id: string | null;
|
||||
job_id: string | null;
|
||||
revision: number | null;
|
||||
publish_target: string;
|
||||
platform?: PublishPlatform;
|
||||
url: string;
|
||||
published_at: string;
|
||||
status: "draft" | "published" | "archived";
|
||||
|
||||
@@ -44,11 +44,18 @@ export const performanceMetricsSchema = z
|
||||
);
|
||||
|
||||
export const publicationInputSchema = z.object({
|
||||
platform: publishPlatformSchema,
|
||||
platform: publishPlatformSchema.optional(),
|
||||
publish_target: z.string().trim().min(1).optional(),
|
||||
url: z.string().trim().url(),
|
||||
published_at: z.string().datetime(),
|
||||
notes: optionalTextSchema.default(""),
|
||||
});
|
||||
}).transform((input) => ({
|
||||
platform: input.platform,
|
||||
publish_target: input.publish_target ?? input.platform ?? "未指定",
|
||||
url: input.url,
|
||||
published_at: input.published_at,
|
||||
notes: input.notes,
|
||||
}));
|
||||
|
||||
export const manualPerformanceInputSchema = z
|
||||
.object({
|
||||
@@ -100,8 +107,10 @@ export const rubricVersionSchema = z.object({
|
||||
|
||||
export const scoringRunSchema = z.object({
|
||||
id: z.string().trim().min(1),
|
||||
job_id: z.string().trim().min(1),
|
||||
revision: z.number().int().positive(),
|
||||
result_version_id: z.string().trim().min(1).nullable().optional(),
|
||||
case_type: z.enum(["article", "human_copy"]).optional(),
|
||||
job_id: z.string().trim().min(1).nullable(),
|
||||
revision: z.number().int().positive().nullable(),
|
||||
rubric_version_id: z.string().trim().min(1),
|
||||
dimension_scores: z.record(z.string(), z.number().min(0).max(5)),
|
||||
composite_score: z.number().min(0).max(10),
|
||||
@@ -111,9 +120,11 @@ export const scoringRunSchema = z.object({
|
||||
|
||||
export const publicationRecordSchema = z.object({
|
||||
id: z.string().trim().min(1),
|
||||
job_id: z.string().trim().min(1),
|
||||
revision: z.number().int().positive(),
|
||||
platform: publishPlatformSchema,
|
||||
result_version_id: z.string().trim().min(1).nullable(),
|
||||
job_id: z.string().trim().min(1).nullable(),
|
||||
revision: z.number().int().positive().nullable(),
|
||||
publish_target: z.string().trim().min(1),
|
||||
platform: publishPlatformSchema.optional(),
|
||||
url: z.string().trim().url(),
|
||||
published_at: z.string().datetime(),
|
||||
status: z.enum(["draft", "published", "archived"]),
|
||||
|
||||
Reference in New Issue
Block a user