99 lines
2.2 KiB
TypeScript
99 lines
2.2 KiB
TypeScript
import { z } from "zod/v4";
|
|
|
|
export const statusResponseSchema = z.object({
|
|
queue: z.number(),
|
|
processing: z.number(),
|
|
processed: z.number(),
|
|
processingFiles: z
|
|
.array(
|
|
z.object({
|
|
name: z.string().nullable(),
|
|
relativePath: z.string().nullable(),
|
|
library: z.string().nullable(),
|
|
step: z.string().nullable(),
|
|
stepPercent: z.number(),
|
|
}),
|
|
)
|
|
.optional()
|
|
.transform((arr) => arr ?? []),
|
|
});
|
|
|
|
export const libraryStatusSchema = z.array(
|
|
z.object({
|
|
Name: z.string().nullable(),
|
|
Status: z.number(),
|
|
Count: z.number(),
|
|
}),
|
|
);
|
|
|
|
export const shrinkageGroupsSchema = z.record(
|
|
z.string(),
|
|
z.object({
|
|
Library: z.string().nullable(),
|
|
OriginalSize: z.number(),
|
|
FinalSize: z.number(),
|
|
Items: z.number(),
|
|
Difference: z.number().optional(),
|
|
}),
|
|
);
|
|
|
|
export const workersResponseSchema = z.array(
|
|
z.object({
|
|
Uid: z.string(),
|
|
NodeName: z.string().nullable(),
|
|
RelativeFile: z.string().nullable(),
|
|
CurrentPart: z.number(),
|
|
CurrentPartName: z.string().nullable(),
|
|
CurrentPartPercent: z.number(),
|
|
StartedAt: z.string(),
|
|
LastUpdate: z.string(),
|
|
ProcessingTime: z
|
|
.object({
|
|
TotalSeconds: z.number().optional(),
|
|
})
|
|
.optional(),
|
|
LibraryFile: z
|
|
.object({
|
|
OriginalSize: z.number(),
|
|
})
|
|
.optional(),
|
|
Library: z
|
|
.object({
|
|
Name: z.string().nullable(),
|
|
})
|
|
.optional(),
|
|
}),
|
|
);
|
|
|
|
export const upcomingFilesSchema = z.array(
|
|
z.object({
|
|
Uid: z.string(),
|
|
Name: z.string().nullable(),
|
|
RelativePath: z.string().nullable(),
|
|
OriginalSize: z.number().nullable(),
|
|
FinalSize: z.number().nullable(),
|
|
Status: z.number(),
|
|
Library: z.string().nullable(),
|
|
Flow: z.string().nullable(),
|
|
Node: z.string().nullable(),
|
|
ProcessingTime: z
|
|
.object({
|
|
TotalSeconds: z.number().optional(),
|
|
})
|
|
.optional(),
|
|
}),
|
|
);
|
|
|
|
export const recentlyFinishedSchema = z.array(
|
|
z.object({
|
|
Uid: z.string(),
|
|
Name: z.string().nullable(),
|
|
RelativePath: z.string().nullable(),
|
|
OriginalSize: z.number().nullable(),
|
|
FinalSize: z.number().nullable(),
|
|
Status: z.number(),
|
|
Library: z.string().nullable(),
|
|
Flow: z.string().nullable(),
|
|
}),
|
|
);
|