forked from jappel/leistungsbilanz-ts
Route project devices through history
This commit is contained in:
parent
ac16cca77a
commit
e930cb75b8
13 changed files with 323 additions and 119 deletions
|
|
@ -1,5 +1,7 @@
|
|||
import { z } from "zod";
|
||||
|
||||
export const expectedProjectRevisionSchema = z.number().int().nonnegative();
|
||||
|
||||
const projectCommandEnvelopeSchema = z.object({
|
||||
schemaVersion: z.number().int().positive(),
|
||||
type: z.string().trim().min(1),
|
||||
|
|
@ -7,11 +9,11 @@ const projectCommandEnvelopeSchema = z.object({
|
|||
});
|
||||
|
||||
export const executeProjectCommandSchema = z.object({
|
||||
expectedRevision: z.number().int().nonnegative(),
|
||||
expectedRevision: expectedProjectRevisionSchema,
|
||||
description: z.string().trim().min(1).max(500).optional(),
|
||||
command: projectCommandEnvelopeSchema,
|
||||
});
|
||||
|
||||
export const executeProjectHistoryCommandSchema = z.object({
|
||||
expectedRevision: z.number().int().nonnegative(),
|
||||
expectedRevision: expectedProjectRevisionSchema,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { z } from "zod";
|
||||
import { projectDeviceSyncFields } from "../constants/project-device-sync-fields.js";
|
||||
import { expectedProjectRevisionSchema } from "./project-command.schemas.js";
|
||||
|
||||
export const createProjectDeviceSchema = z.object({
|
||||
name: z.string().min(1),
|
||||
|
|
@ -19,6 +20,20 @@ export const createProjectDeviceSchema = z.object({
|
|||
|
||||
export const updateProjectDeviceSchema = createProjectDeviceSchema;
|
||||
|
||||
export const createProjectDeviceCommandSchema =
|
||||
createProjectDeviceSchema.extend({
|
||||
expectedRevision: expectedProjectRevisionSchema,
|
||||
});
|
||||
|
||||
export const updateProjectDeviceCommandSchema =
|
||||
updateProjectDeviceSchema.extend({
|
||||
expectedRevision: expectedProjectRevisionSchema,
|
||||
});
|
||||
|
||||
export const projectDeviceStructureCommandSchema = z.object({
|
||||
expectedRevision: expectedProjectRevisionSchema,
|
||||
});
|
||||
|
||||
export const synchronizeProjectDeviceRowsSchema = z.object({
|
||||
rowIds: z.array(z.string().min(1)).min(1),
|
||||
fields: z.array(z.enum(projectDeviceSyncFields)).min(1),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue